PyQt5 PushButton 未显示

Posted

技术标签:

【中文标题】PyQt5 PushButton 未显示【英文标题】:PyQt5 PushButton not showing 【发布时间】:2016-07-14 17:32:52 【问题描述】:

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

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

这是它显示的窗口

【问题讨论】:

【参考方案1】:

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

【讨论】:

谢谢。我是 PyQt 的新手。【参考方案2】:

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

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

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

在此示例中,widget 被间接分配为 buttonlayout 的父代

【讨论】:

【参考方案3】:
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()

【讨论】:

以上是关于PyQt5 PushButton 未显示的主要内容,如果未能解决你的问题,请参考以下文章

使用 PushButton 循环列表 - PyQt5

Python制作简易计算器(PyQt5)

Pyqt5 输入信息 pushbutton 与 键盘上Enter绑定

pyqt5-快捷键设置

PyQt5 - 如何在“按钮”小部件中添加图像? | (不是图标)

pyqt5在textBrowser添加文本并自动滑动到底