pyqt创建新窗口闪退
时间: 2024-04-18 17:23:00 浏览: 142
在PyQt5中创建新窗口时出现闪退的问题可能是由于没有将QMainWindow对象放入主进程的self中导致的。如果没有将Q对象加入到self中,就无法使用app = QApplication(sys.argv)来支持窗口的循环。因此,决这个问题的方法是将QMainWindow添加到主进程的self中。下面是一个示例代码[^1]:
```python
import sys
PyQt5.QtWidgets import QApplication, QMainWindow,
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Main Window")
self.setGeometry(100, 100, 300, 200)
self.button = QPushButton("Open New Window", self)
self.button.setGeometry(50, 50, 200, 100)
self.button.clicked.connect(self.open_new_window)
def open_new_window(self):
self.new_window = QMainWindow()
self.new_window.setWindowTitle("New Window")
self.new_window.setGeometry(200, 200, 300, 200)
self.new_window.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个示例中,我们创建了一个MainWindow类,继承自QMainWindow。在MainWindow的构造函数中,我们创建了一个按钮,并为按钮的clicked信号连接了一个槽函数open_new_window。在open_new_window函数中,我们创建了一个新的QMainWindow对象,并设置了窗口的标题和几何属性。最后,我们调用show方法显示新窗口。
请注意,这只是一个示例代码,你可以根据自己的需求进行修改和扩展。
阅读全文