pyqt5怎么关闭界面
时间: 2023-09-18 21:05:28 浏览: 48
### 回答1:
可以使用如下代码关闭 Pyqt5 界面:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Example')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在需要关闭界面的时候,调用 `close()` 方法即可:
```python
self.close()
```
或者使用 `QApplication` 的 `quit()` 方法退出程序:
```python
app.quit()
```
### 回答2:
在PyQt5中,可以使用`close()`方法来关闭界面。下面是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('关闭界面示例')
btn = QPushButton('关闭界面', self)
btn.setGeometry(100, 80, 100, 30)
btn.clicked.connect(self.close)
def closeEvent(self, event):
reply = QMessageBox.question(self, '确认关闭', '确定要关闭窗口吗?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
```
在上述代码中,定义了一个`MyWindow`类,继承自`QWidget`,并且重写了`closeEvent`方法。在`initUI`方法中,创建了一个按钮来关闭界面,并且通过连接`clicked`信号与`close`方法关联,在点击按钮时调用`close`方法关闭界面。
此外,在`closeEvent`方法中,使用`QMessageBox`来显示一个确认对话框,询问用户是否确认关闭窗口。如果用户点击了确定按钮,则通过`event.accept()`来接受关闭事件,关闭界面;如果用户点击了取消按钮,则通过`event.ignore()`来忽略关闭事件,保持界面打开。
最后,在`main`函数中,创建了一个`QApplication`对象,实例化了`MyWindow`类并显示界面,调用`app.exec_()`来启动应用程序的主事件循环,并且通过`sys.exit`来确保程序正确退出。