Czy wiesz, jak ukryć zminimalizować, zmaksymalizować i zamknąć przyciski paska tytułu w Qt. Szczególnie muszę ukryć to na QMainWindow.Qt ukryj przyciski minimalizacji, maksymalizacji i zamknięcia
Odpowiedz
Zobacz, jak działa Window Flags Example!
dzięki mosg. tak naprawdę moim głównym problemem jest ukrywanie przycisku Zamknij na mainWindow. – ufukgun
ustawić to okno flagi Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint
Zauważ, że na niektórych platformach zachowuje się w inny sposób. Na przykład w systemie Mac OS X to wyłączenie (nie ukrywa) bliskie/minimalizacji/maksymalizacji przyciski
ten może być osiągany przy stosując eventFilter na QEvent :: Blisko zdarzeń z MainWindow
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();
}
jeśli używasz Qt QML następnie, aby usunąć minimalizacji, maksymalizacji i przycisk zamykania, ustaw bezramowe okna flagę w funkcji okna w pliku main.qml, jak poniżej:
flags: Qt.FramelessWindowHint
flagi: Qt.Dialog | Qt.WindowCancelButtonHint | Qt.WindowCloseButtonHint
to działa również dla elementu okiennej
flagi: Qt.Window | Qt.WindowTitleHint
Na podstawie tych nazw, nie sądzę, że są to poprawne flagi dla tego ... Czy to dlatego OP miał problemy ze znalezieniem? – Taegost
mógłbyś wspomnieć, dlaczego trzeba to zrobić? –
Nie chcę, aby użytkownik zamknął moją aplikację, naciskając x na rogu. Chcę, żeby wykonał pewne procesy przed zakończeniem operacji. – ufukgun