c++ - 从 Qt 对话框中删除 "?"-button

标签 c++ qt

<分区>

我想像解释的那样从 Qt 对话框中删除“?”按钮 here , 但不知何故它不起作用。

这是我的代码:

Qt::WindowFlags flags;
flags = (Qt::Dialog | Qt::WindowStaysOnTopHint) & 
          ~Qt::WindowContextHelpButtonHint;
setWindowFlags( flags );

我认为按位运算符有问题,但我不知道是什么..

最佳答案

这对我来说很好:

QDialog *dialog = new QDialog;
Qt::WindowFlags flags(Qt::WindowTitleHint);
dialog->setWindowFlags(flags);

然而,最常见的方法是在构造函数中传递标志:

QDialog *dialog = new QDialog(0, Qt::WindowTitleHint);

编辑:我认为对 QFlags 运算符存在误解(请参阅下面的评论)。这个例子可能会清除它:

Qt::WindowFlags flags(Qt::Dialog | Qt::WindowStaysOnTopHint);
qDebug() << flags.testFlag(Qt::WindowContextHelpButtonHint); // false because the flag hasn't been added
flags = flags | Qt::WindowContextHelpButtonHint;
qDebug() << flags.testFlag(Qt::WindowContextHelpButtonHint); // true because it has been added
flags = flags & ~Qt::WindowContextHelpButtonHint;
qDebug() << flags.testFlag(Qt::WindowContextHelpButtonHint); // false because it has been removed

倒数第二行代码从 flags 中删除了 Qt::WindowContextHelpButtonHint。它添加“否定”标志。

至少这是我的理解。

关于c++ - 从 Qt 对话框中删除 "?"-button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222287/

相关文章:

c++ - "if if"与 "if else if"的性能差异

c++ - Opengl减少制服的使用

c++ - qmake在命令行中分配变量

qt - 相对于文本中心移动 `QGraphicsTextItem` 位置?

c++ - 如何集中 QTreeWidget header

c++ - Sublime Text 3 中的 C11 和 C++11 问题

c++ - GTK+ g_pointer_connect 错误地传递数据

c++ - 垃圾收集在内存中移动引用的对象会破坏 Unreal4 引擎中的引用吗?

linux - 在 Linux 上不使用 Qt 运行我的应用程序

c++ - 我可以用什么来替换我的 Qt 应用程序中的 sleep 和 usleep?