PyQt5 PushButton没有显示

时间:2016-07-14 17:32:53

标签: python pyqt pyqt5

这是我正在使用的代码,按钮没有显示,只显示一个空白窗口。控制台中没有错误。

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *


import sys

def start():
    app = QApplication(sys.argv)
    w = QWidget()
    w.resize(128,102)
    w.move(0, 0)
    w.setWindowTitle('Simple')
    btn = QtWidgets.QPushButton("Hi")
    btn.move(50, 50)
    btn.resize(btn.sizeHint())
    w.show()

    sys.exit(app.exec_())

start()

这是它显示的窗口 pic

3 个答案:

答案 0 :(得分:3)

尝试将父参数传递给构造函数。 parent参数导致按钮由Qt拥有,而不是PyQt。 btn = QtWidgets.QPushButton("Hi", w)应该有用。

答案 1 :(得分:0)

您想要显示的任何小部件都需要直接或间接地成为您希望它出现的小部件的父级。

执行此操作的常用方法是为窗口小部件分配布局并向其添加其他窗口小部件或子布局。

widget = QtWidgets.QWidget()
button = QtWidgets.QPushButton('Hi')
layout = QtWidgets.QVBoxLayout(widget)  # Parents layout to widget
layout.addWidget(button)
widget.show()

在此示例中,widget被间接指定为buttonlayout

的父级

答案 2 :(得分:0)

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import *


import sys

def start():
    app     = QApplication(sys.argv)
    w       = QWidget()
    w.resize(128,102)
    w.move(0, 0)
    w.setWindowTitle('Simple')

    btn = QtWidgets.QPushButton (w)
    btn.move(50, 50)
    btn.resize(btn.sizeHint())
    btn.setText ('Hi')

    w.show()

    sys.exit(app.exec_())

start()