PyQt为按钮创建单独的窗口

时间:2019-05-15 08:10:19

标签: python pyqt pyqt5

最近,我开始尝试PyQt5 GUI库,因为Tkinter看起来不是很现代或不错。我试图创建一个带有按钮的非常简单的窗口,但是由于某种原因,它为该按钮打开了一个新窗口。我该如何解决?这是代码:

from PyQt5 import QtWidgets

app = QtWidgets.QApplication([])

window = QtWidgets.QWidget()
window.setGeometry(0, 0, 500, 300)
window.setWindowTitle("UI")
window.show()


btn = QtWidgets.QPushButton("Test")
btn.resize(100,100)
btn.move(100,100)
btn.show()


(app.exec_())

我知道我应该为GUI使用类,但是我想在开始之前学习基础知识。

1 个答案:

答案 0 :(得分:1)

要使像QPushButton之类的小部件成为窗口的一部分,必须完成该小部件:

  1. 成为窗口的孩子或
  2. 从窗口中成为某个孩子的孩子,或者
  3. 它是属于窗口的布局的一部分。

在您的情况下QPushButton不满足任何要求,因此它将是一个新窗口,因此可以使用1或3规则来解决:

MyClass myclass = new MyClass(1);

或者:

import sys
from PyQt5 import QtWidgets

if __name__ == '__main__':

    app = QtWidgets.QApplication(sys.argv)

    window = QtWidgets.QWidget()
    window.setGeometry(0, 0, 500, 300)
    window.setWindowTitle("UI")

    btn = QtWidgets.QPushButton("Test", window)
    btn.resize(100,100)
    btn.move(100,100)

    window.show()

    sys.exit(app.exec_())