你知道如何在Qt中隐藏标题栏的最小化、最大化和关闭按钮吗?我特别需要在QMainWindow上隐藏它。
设置此窗口标志 Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint
请注意,在某些平台上,它可能会表现出不同的方式。例如,在 Mac OS X 上,它会禁用(而非隐藏)关闭/最小化/最大化按钮。
如果您正在使用Qt qml,那么要去掉最小化、最大化和关闭按钮,请在您的main.qml文件中的window函数中设置无边框窗口标志,如下所示:
flags: Qt.FramelessWindowHint
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();
}
对于关闭按钮,您可以重写QMainWindow的closeEvent()方法。
class MainWindow(QMainWindow):
def closeEvent(self, event):
event.ignore()
return
标志: Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint
这也适用于窗口项目
标志: Qt.Window | Qt.WindowTitleHint