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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:34:35