求助QT窗口最大,最小,关闭按钮问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助QT窗口最大,最小,关闭按钮问题相关的知识,希望对你有一定的参考价值。
参考技术A es会弹出一个窗口,窗口左侧栏目中选择System-->General,然后在右侧最下面选中Use localizedQt隐藏最小化、最大化和关闭按钮
【中文标题】Qt隐藏最小化、最大化和关闭按钮【英文标题】:Qt hide minimize, maximize and close buttons 【发布时间】:2011-03-13 18:44:55 【问题描述】:你知道如何在 Qt 中隐藏标题栏的最小化、最大化和关闭按钮吗?我特别需要在 QMainWindow 上隐藏它。
【问题讨论】:
您能说说为什么需要这样做吗? 我不希望用户通过按角上的 x 来关闭我的应用程序。我希望他在退出操作之前做一些处理。 【参考方案1】:对于关闭按钮,可以重写QmainWindow的closeEvent()
class MainWindow(QMainWindow):
def closeEvent(self, event):
event.ignore()
return
【讨论】:
【参考方案2】:标志:Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint
这也适用于窗口项
标志:Qt.Window | Qt.WindowTitleHint
【讨论】:
基于这些名称,我认为这些不是正确的标志...这就是 OP 无法找到它的原因吗?【参考方案3】:如果您使用的是 Qt qml,那么要删除最小化、最大化和关闭按钮,请在 main.qml 文件的窗口函数中设置无框窗口标志,如下所示:
flags: Qt.FramelessWindowHint
【讨论】:
【参考方案4】:看看Window Flags Example 是如何工作的!
【讨论】:
谢谢你。实际上我的主要问题是在 mainWindow 上隐藏关闭按钮。【参考方案5】:这可以通过在 MainWindow 的 QEvent::Close 事件上使用 eventFilter 来实现
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
if (event->type() == QEvent::Close)
event->ignore();
doWhateverYouNeedToDoBeforeClosingTheApplication();
return true;
return QMainWindow::eventFilter(obj, event);
void MainWindow::doWhateverYouNeedToDoBeforeClosingTheApplication()
// Do here what ever you need to do
// ...
// ...
// and finally quit
qApp->quit();
【讨论】:
【参考方案6】:设置此窗口标志Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint
请注意,在某些平台上它的行为方式不同。例如,在 Mac OS X 上,它会禁用(而不是隐藏)关闭/最小化/最大化按钮
【讨论】:
以上是关于求助QT窗口最大,最小,关闭按钮问题的主要内容,如果未能解决你的问题,请参考以下文章
C++ Qt库 如何修改对话框本身的属性(如:最大化、最小化按钮、关闭按钮、边框粗细、颜色等)