PyQt5 按钮不显示

PyQt5 PushButton not showing

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

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()

这是它显示的 window

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

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

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

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

在此示例中,widget 通过 layout

间接指定为 button 的父级
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()