qt taskbar qwidget

Qt Ocultar elemento de la barra de tareas



taskbar qwidget (4)

Código Python para lograr esto:

from PyQt5.QtCore import * from PyQt5.QtWidgets import * class MainWindow(QWidget): def __init__(self, parent=None): super(MainWindow, self).__init__(parent, Qt.Tool) window = MainWindow() window.show()

Tengo un QWidget personalizado y simplemente no quiero que aparezca en la barra de tareas. Tengo un QSystemTrayIcon para administrar salir / minimizar, etc.


Creo que lo único que necesita aquí es algún tipo de widget de marcador de posición principal. Si crea su widget sin un padre, se considera una ventana de nivel superior. Pero si lo crea como elemento secundario de una ventana de nivel superior, se considera una ventana secundaria y no obtiene una entrada de la barra de tareas en sí. La ventana principal, por otro lado, tampoco recibe una entrada de la barra de tareas porque nunca la configuras como visible: este código aquí funciona para mí:

class MyWindowWidget : public QWidget { public: MyWindowWidget(QWidget *parent) : QWidget(parent, Qt::Dialog) { } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); QMainWindow window; MyWindowWidget widget(&window); widget.show(); return app.exec(); }

Nunca se muestra una entrada de la barra de tareas, si esto es lo que deseaba.


Si desea mostrar / ocultar el widget sin mostrarlo nunca en la barra de tareas, puede comprobar las ventanas de ese widget. No estoy 100% seguro, pero creo que usé Qt::Dialog | Qt::Tool y Qt::CustomizeWindowHint para lograr esto, pero mi ventana no estaba completamente decorada también. Otra cosa que podría tener en cuenta si juega con eso es la política de salida de su aplicación. Normalmente, cerrar / ocultar la última ventana de nivel superior saldrá de la aplicación, por lo que quizás necesite llamar a QApplication::setQuitOnLastWindowClosed(false) para evitar que ...


Solo establece el indicador Qt :: SubWindow para el widget.