QDialog - 更改默认标志以排除 ?按钮
QDialog - Change default flags to exclude ? button
默认情况下,QDialog
应用一个标志(我不完全确定是哪个),使问号按钮出现在右上角。我有一个类Login
继承自QDialog
,我能够通过显式传递一组更小的标志来摆脱这个问号按钮,例如
Login::Login(QWidget *parent) : QDialog(parent, Qt::WindowCloseButtonHint), ui(new Ui::Login) {}
但是,我也在我的程序中使用其他对话框,例如 QMessageBox
和 QInputDialog
.
所以我的问题:QDialog
使用的所有默认标志是什么,有没有办法设置默认值,这样我就不必自己传递标志(容易受到可能省略一些对跨平台能力很重要的标志)每次初始化新QDialog
?
你可以做:
Login::Login(QWidget *parent) : QDialog(parent, QDialog( ).windowFlags() & ~Qt::WindowContextHelpButtonHint ), ui(new Ui::Login) {}
~
是位否定运算符。
windowFlags()
包含默认标志 QDialog
。
这同样适用于不同的标志,因此您不会修改您不想修改的标志。
您询问了默认标志:
QFlags(0x1|0x2|0x1000|0x2000|0x10000|0x8000000)
要创建默认值,您可以创建一个包含您喜欢的 WindowFlags 的全局变量。
例如:
QFlags< Qt::WindowFlags > defaultFlags;
defaultFlags = QDialog( ).windowFlags( );
defaultFlags = defaultFlags & ~Qt::WindowContextHelpButtonHint;
例如,现在,每当您创建对话框时,您都可以将 defaultFlags 作为第二个参数传递。
或者,您可以围绕QDialog
类编写一个包装器,然后您可以根据自己的喜好完全修改并使用它,而无需添加额外的参数或重复自己:
class CustomDialog : public QDialog
{
Q_OBJECT
public:
explicit CustomDialog( QWidget *parent = 0);
};
相关文章:
- 问:如何使用C++中的按钮从窗口打开窗口
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- QML按钮点击功能执行顺序
- 当用户超过按钮点击限制时报告
- 函数计算用户按下按钮的频率
- 热键/按钮,根据需要进行编译,但不运行(在F5和Ctrl+Shift+B之间)
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- Qt自定义QPush按钮未显示在布局上
- SDL 操纵杆按钮按下/C++
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- Qt中来自不同功能的按钮引用
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- ImGui 在单击按钮后冻结
- WinAPI 无法创建按钮
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- 如何使用connect将qml按钮与同一类的cpp函数连接起来
- QDialog - 更改默认标志以排除 ?按钮