我在我的一个应用程序中使用Qt对话框。 我需要隐藏/删除帮助按钮。但是我无法找到确切的位置,我可以找到帮助按钮的位置。不知道它是否在Qt窗口上有特定的标志。如何隐藏/删除“?” Qt对话框的“标题栏”上的帮助按钮?
52
A
回答
45
默认情况下,Qt :: WindowContextHelpButtonHint标志被添加到对话框中。 您可以使用参数WindowFlags来控制此对话框构造函数。如果添加了的Qt :: WindowContextHelpButtonHint标志你将得到帮助按钮回来
QDialog *d = new QDialog(0, Qt::WindowSystemMenuHint | Qt::WindowTitleHint);
d->exec();
:
例如,您可以通过做只指定TitleHint和SystemMenu标志。
在PyQt的你可以这样做:在窗口标志
from PyQt4 import QtGui, QtCore
app = QtGui.QApplication([])
d = QtGui.QDialog(None, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
d.exec_()
更多细节可以在Qt文档中WindowType enum找到。
26
好的,我找到了一种方法来做到这一点。
它处理窗口标志。所以这里是我使用的代码:
Qt::WindowFlags flags = windowFlags()
Qt::WindowFlags helpFlag =
Qt::WindowContextHelpButtonHint;
flags = flags & (~helpFlag);
setWindowFlags(flags);
但是通过这样做,有时对话框的图标被重置。所以要确保对话框的图标不会改变,你可以添加两行。
QIcon icon = windowIcon();
Qt::WindowFlags flags = windowFlags();
Qt::WindowFlags helpFlag =
Qt::WindowContextHelpButtonHint;
flags = flags & (~helpFlag);
setWindowFlags(flags);
setWindowIcon(icon);
3
这里列出的工作,但你自己回答这个问题的答案,我建议你运行该示例程序$QTDIR/examples/widgets/windowflags
。这将允许您测试窗口标志及其效果的所有配置。非常有用的搞清楚松鼠windowflags问题。
0
我找不到插槽,但您可以覆盖虚拟winEvent
函数。
#if defined(Q_WS_WIN)
bool MyWizard::winEvent(MSG * msg, long * result)
{
switch (msg->message)
{
case WM_NCLBUTTONDOWN:
if (msg->wParam == HTHELP)
{
}
break;
default:
break;
}
return QWizard::winEvent(msg, result);
}
#endif
8
我就遇到了这个问题,在Windows 7中,Qt的5.2,而工作最适合我的标志组合是这样的:
的Qt :: WindowTitleHint | Qt :: WindowCloseButtonHint
这给了我一个工作关闭按钮,但没有问号帮助按钮。只使用Qt :: WindowTitleHint或Qt :: WindowSystemMenuHint摆脱了帮助按钮,但它也禁用了关闭按钮。
正如Michael Bishop所建议的那样,它正在使用windowflags例子来演示这种组合。谢谢!
20
// remove question mark from the title bar
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
0
通过以下方式默认情况下,在应用程序中所有的对话框中删除问号可用于:
附上以下事件过滤器QApplication
在程序开始的地方:
bool eventFilter (QObject *watched, QEvent *event) override
{
if (event->type() == QEvent::Create)
{
if (watched->isWidgetType())
{
auto w = static_cast<QWidget *> (watched);
w->setWindowFlags (w->windowFlags() & (~Qt::WindowContextHelpButtonHint));
}
}
return QObject::eventFilter (watched, event);
}
相关问题
- 1. 如何在Qt中隐藏对话框的标题栏
- 2. QT:隐藏对话框/窗口的标题栏
- 3. 如何从对话框窗口中隐藏/删除所有对话框按钮
- 4. 如何隐藏对话框加载的jQuery对话框按钮?
- 5. HTML帮助 - 隐藏按钮
- 6. 难以隐藏我的对话框标题栏,同时保持关闭按钮
- 7. 如何隐藏标题对话框jquery?
- 8. Android对话框:删除标题栏
- 9. jQuery Mobile:如何1)从对话框中删除/隐藏标题栏,2)只是从标题栏中删除/隐藏“X”图标?
- 10. UI对话框按钮隐藏控件
- 11. jquery对话框:隐藏按钮
- 12. 使用jQuery对话框隐藏按钮
- 13. Swing:将帮助[?]按钮添加到窗口标题栏
- 14. 隐藏标题栏jQuery UI的对话框
- 15. 如何删除jQuery的对话框的标题上一个动态对话框
- 16. 隐藏或删除CKEditor上的urlText字段上传对话框
- 17. 如何隐藏导航栏的标题保持后退按钮
- 18. 如何删除(或隐藏)jqgrid中的标题栏?
- 19. 如何隐藏或删除CKEditor“折叠工具栏”按钮?
- 20. 标题栏如何隐藏?
- 21. 隐藏单击按钮上的自定义对话框
- 22. 如何隐藏主窗口的标题栏不隐藏最小化,在Qt的
- 23. 按钮跑马灯停止一旦标题栏变为(帮助)
- 24. Java:仅删除标题栏按钮
- 25. 如何隐藏或删除top_right上的按钮statusBar?
- 26. 如何隐藏/删除提交按钮上的文字?
- 27. JQuery帮助,如何隐藏JQuery中的所有按钮
- 28. 如何删除/隐藏GWT Tabpanel标题
- 29. activeadmin的has_many隐藏删除按钮
- 30. 隐藏Typo3中的删除按钮
见下面rrwick的答案。如果你没有的Qt :: WindowCloseButtonHint添加到您的标志,你会禁用的关闭按钮,默认情况下启用。 – Dan 2015-01-12 21:54:49
这里是一个链接PyQt4中指定的窗口标志,http://pyqt.sourceforge.net/Docs/PyQt4/qt.html#WindowType-enum如果你想关闭按钮 – Barmaley 2015-06-09 20:43:53
同时添加标志'的Qt :: WindowCloseButtonHint`被激活。 – 2016-09-30 16:25:20