web-dev-qa-db-ja.com

Qt非表示最小化、最大化、閉じるボタン

Qtのタイトルバーの最小化、最大化、および閉じるボタンを非表示にする方法を知っていますか。特にQMainWindowで非表示にする必要があります。

12
ufukgun

このウィンドウフラグを設定しますQt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint

一部のプラットフォームでは、動作が異なることに注意してください。たとえば、Mac OS Xでは、ボタンを閉じる/最小化/最大化する(非表示にするのではなく)無効にします

19
Kamil Klimek

Qt qmlを使用している場合は、最小化、最大化、閉じるボタンを削除するには、以下のように、main.qmlファイルのウィンドウ関数でフレームレスウィンドウフラグを設定します。

flags: Qt.FramelessWindowHint
5
ams

ウィンドウフラグの例 がどのように機能するかを見てください!

2
mosg

これは、メインウィンドウの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();
}
2
lolo67

フラグ:Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint

これはウィンドウアイテムでも機能します

フラグ:Qt.Window | Qt.WindowTitleHint

0
Randall