Skip to content Skip to sidebar Skip to footer

Embed Widgets Into Qwindow

Basically I want to create a window using QtGui.QWindow() instead of QtWidgets.QMainWindow(). I want to do this because I want to have access to QWindow functions such as: startSy

Solution 1:

So that there is an XY problem since the objective is to modify properties of the QWindow associated with the QWidget but instead it asks how to embed a QWidget into a QWindow.

QWidget creates a QWindow after using the show() method and it can be accessed using the windowHandle() method.

import sys

from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtWidgets import QApplication, QMainWindow


defmain():
    app = QApplication(sys.argv)

    mainwindow = QMainWindow()
    mainwindow.show()

    window = mainwindow.windowHandle()

    window.setTitle("Foo")

    defstart_resize():
        window.startSystemResize(Qt.TopEdge)

    defstart_move():
        window.startSystemMove()

    defmaximized():
        window.setWindowStates(Qt.WindowMaximized)

    QTimer.singleShot(5 * 1000, start_resize)
    QTimer.singleShot(10 * 1000, start_move)
    QTimer.singleShot(15 * 1000, maximized)

    sys.exit(app.exec())


if __name__ == "__main__":
    main()

Note: Some methods of the QWidget are a wrapper of the QWindow methods such as setWindowTitle() or setWindowState().

Post a Comment for "Embed Widgets Into Qwindow"