You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5窗口运行后为空,已添加的QLabel、QPushButton控件不显示如何解决

问题原因

你代码中的布局逻辑存在遗漏:你已经将标签、按钮控件添加到了group_layout横向布局中,但没有将group_layout嵌套到顶层的main_layout主布局内,主布局无有效内容可渲染,因此窗口仅显示空白。

修复方案

在create_layout方法的末尾添加一行代码,将group_layout加入主布局即可:

main_layout.addLayout(group_layout)
修改后完整可运行代码
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
import sys
from datetime import datetime


class MyWindow(QtWidgets.QDialog):
    def __init__(self,parent=None):
        super(MyWindow, self).__init__(parent)
        self.setGeometry(200,200,300,300)
        self.setWindowTitle("Timer")
        self.create_widget()
        self.create_layout()
        

    def create_widget(self):
        self.user_name_lbl = QtWidgets.QLabel("username")
        self.start_btn = QtWidgets.QPushButton("Start")

    def create_layout(self):
        main_layout = QtWidgets.QVBoxLayout(self)
        group_layout = QtWidgets.QHBoxLayout()
        group_layout.addWidget(self.user_name_lbl)
        group_layout.addWidget(self.start_btn)
        # 新增的代码行,将横向布局嵌套到主布局中
        main_layout.addLayout(group_layout)

if __name__ == '__main__':
    app=QApplication(sys.argv)
    form=MyWindow()
    form.show()
    sys.exit(app.exec_())
效果说明

修改后运行窗口将正常显示左侧的username标签和右侧的Start按钮。

内容的提问来源于stack exchange,提问作者Nirmal Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:06:06