python - 将小部件嵌入到 QWindow 中

标签 python pyqt5

基本上我想使用QtGui.QWindow()而不是QtWidgets.QMainWindow()创建一个窗口。

我想这样做是因为我想访问 QWindow 函数,例如:

  • startSystemMove()
  • setTitle()
  • setWindowStates()
  • startSystemResize()

起初我以为你让窗口类继承QtGui.QWindow,但如果你这样做,它只会创建一个空窗口。

但是,QWindow 函数确实可以工作。所以我的猜测是,我必须以某种方式将 QMainWindow (或其中的小部件)输入到 QWindow 中,但我不知道如何输入。

最佳答案

因此存在 XY 问题,因为目标是修改 QWindow 的属性与 QWidget 相关但它询问如何嵌入 QWidget进入QWindow .

QWidget创建 QWindow使用show()后方法,可以使用 windowHandle() 访问它方法。

import sys

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


def main():
    app = QApplication(sys.argv)

    mainwindow = QMainWindow()
    mainwindow.show()

    window = mainwindow.windowHandle()

    window.setTitle("Foo")

    def start_resize():
        window.startSystemResize(Qt.TopEdge)

    def start_move():
        window.startSystemMove()

    def maximized():
        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()

注意:QWidget的一些方法是 QWindow 的包装方法如 setWindowTitle()setWindowState() .

关于python - 将小部件嵌入到 QWindow 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66823731/

相关文章:

python - 如何在 matplotlib 中美观地显示通用数量的轴?

python - 从 Flask 中的 HTTP POST 请求读取图像文件并将其转换为 PIL 图像

python - Django - 查看,url 怪异

python - seaborn displot()未在定义的子图中绘制

python - 如何使布局成为 QMainWindow 的主要小部件

python - PyQt5 中带有可点击文本的 QPlainTextEdit 小部件

python-3.x - 如何在 PyQT5 中从字符串/xml 流中显示 SVG 图像?

python - 使用pid在python中杀死子进程

python - 使用 python 请求将 XML 文件发送到 Rest API

python - 使用 cx_Freeze 卡住时主窗口图标不显示