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
相关产品推荐
相关产品推荐

