17

你知道如何在 Qt 中隐藏标题栏的最小化、最大化和关闭按钮吗?我特别需要将它隐藏在 QMainWindow 上。

4

6 回答 6

25

设置此窗口标志Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint

请注意,在某些平台上,它的行为方式不同。例如在 Mac OS X 上它禁用,(不隐藏)关闭/最小化/最大化按钮

于 2010-07-09T20:19:48.943 回答
7

如果您使用的是 Qt qml,那么要删除最小化、最大化和关闭按钮,请在 main.qml 文件的窗口函数中设置无框窗口标志,如下所示:

flags: Qt.FramelessWindowHint
于 2017-04-27T05:46:01.567 回答
6

看看窗口标志示例是如何工作的!

于 2010-07-09T09:13:38.353 回答
2

这可以通过在 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();
}
于 2011-08-16T11:39:43.267 回答
1

对于关闭按钮,可以覆盖 QmainWindow 的 closeEvent()

class MainWindow(QMainWindow):    
    def closeEvent(self, event):
        event.ignore()
        return
于 2020-09-07T17:15:36.713 回答
0

标志:Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint

这也适用于窗口项目

标志:Qt.Window | Qt.WindowTitleHint

于 2017-11-28T20:08:51.403 回答