QtWidget窗口中Quit按钮未显示问题求助
解决Quit按钮未显示的问题
嘿,我来帮你搞定这个Quit按钮不显示的问题~从你给出的代码片段来看,核心问题应该是你没有把Quit按钮添加到GridLayout布局中,也没有将布局绑定到窗口上。GridLayout需要明确管理所有组件,不然组件没法被正确渲染出来。
我整理了修正后的完整代码,你可以参考:
import sys from PySide import QtGui, QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): # 创建标签和输入框 title = QtGui.QLabel('Title') author = QtGui.QLabel('Author') review = QtGui.QLabel('Review') titleEdit = QtGui.QLineEdit() authorEdit = QtGui.QLineEdit() reviewEdit = QtGui.QLineEdit() # 创建Quit按钮并绑定退出事件 quitBtn = QtGui.QPushButton('Quit') quitBtn.clicked.connect(QtGui.qApp.quit) # 初始化GridLayout并设置组件间距 grid = QtGui.QGridLayout() grid.setSpacing(10) # 将标签和输入框添加到布局对应位置 grid.addWidget(title, 0, 0) grid.addWidget(titleEdit, 0, 1) grid.addWidget(author, 1, 0) grid.addWidget(authorEdit, 1, 1) grid.addWidget(review, 2, 0) grid.addWidget(reviewEdit, 2, 1) # 把Quit按钮添加到布局,跨2列显示让它更美观 grid.addWidget(quitBtn, 3, 0, 1, 2) # 关键:将布局设置为窗口的主布局 self.setLayout(grid) # 设置窗口基础属性 self.setGeometry(300, 300, 350, 250) self.setWindowTitle('Review GUI') self.show() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
关键修正说明:
- 必须通过
grid.addWidget()把Quit按钮加入GridLayout,我这里设置它在第4行跨2列显示,视觉上更协调 - 最后一定要调用
self.setLayout(grid),把布局绑定到窗口上,这样布局里的所有组件才会被窗口渲染出来 - 顺便给按钮绑定了退出事件,点击后可以直接关闭窗口
这样运行脚本后,Quit按钮就会正常显示在窗口底部啦~
内容的提问来源于stack exchange,提问作者chandra kanth Chandra
相关产品推荐
相关产品推荐

