基本上我想使用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/