我在我的一個應用程序中使用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