求助QT窗口最大,最小,关闭按钮问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助QT窗口最大,最小,关闭按钮问题相关的知识,希望对你有一定的参考价值。

参考技术A es会弹出一个窗口,窗口左侧栏目中选择System-->General,然后在右侧最下面选中Use localized

Qt隐藏最小化、最大化和关闭按钮

【中文标题】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库 如何修改对话框本身的属性(如:最大化、最小化按钮、关闭按钮、边框粗细、颜色等)

Qt隐藏最小化、最大化和关闭按钮

QT界面如何加最小化、最大化按钮?

PyQt5-Qt Designer窗口操作

WIN7下用CreateWindowEx创建窗口,不要最大化,最小化和关闭按钮?

Qt之界面实现技巧