QT mainwindow.show(),无法弹出窗体的原因

网上搜索原因有两种

  1. 重写了mainwindow的show函数
  2. 重写了setVisible(bool)函数

自己程序的原因

我写的 mainwindow 里有 tableWidget 类,增加 tableWidget 的 headerlabel 列名时忘记修改setColumncount(int) 的参数,导致程序崩溃,无法弹出窗体。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您可以参考以下代码实现: 1. 首先,创建一个主窗体和一个按钮,代码如下: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog, QLabel, QVBoxLayout class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('Main Window') self.setGeometry(100, 100, 300, 200) self.btn = QPushButton('Open Dialog', self) self.btn.move(100, 50) self.btn.clicked.connect(self.openDialog) def openDialog(self): dialog = InputDialog(self) dialog.exec_() ``` 2. 然后,创建一个弹出窗体,代码如下: ```python class InputDialog(QDialog): def __init__(self, parent=None): super().__init__(parent) self.initUI() def initUI(self): self.setWindowTitle('Input Dialog') self.setGeometry(200, 200, 300, 200) label = QLabel('Please input your name:', self) self.input = QLineEdit(self) vbox = QVBoxLayout() vbox.addWidget(label) vbox.addWidget(self.input) self.setLayout(vbox) btn = QPushButton('OK', self) btn.move(100, 150) btn.clicked.connect(self.accept) def accept(self): name = self.input.text() self.parent().statusBar().showMessage('Your name is: {}'.format(name)) super().accept() ``` 在弹出窗体中,我们创建了一个标签和一个输入框,然后通过垂直布局将它们放在一起。还创建了一个“确定”按钮,当用户点击该按钮时,会将输入框中的数据传递给主窗体,并在主窗体的状态栏中显示。 3. 最后,在主函数中运行应用程序,代码如下: ```python if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 这样,当用户点击主窗体中的按钮时,就会弹出一个窗体,要求用户输入数据,并在用户点击“确定”按钮后将数据传递给主窗体

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值