通过pyqt5和eric6分别生成了一个主窗口和一个字窗口py文件,实现界面与逻辑分离。使用python通过import两个窗口,实现:在主界面点击按钮后,显示子窗口,并保持子窗口在最前面。当点击子窗口中的某个按钮后,子窗口关闭
时间: 2024-10-20 18:19:24 浏览: 38
在PyQt5中,你可以使用`QMainWindow`作为主窗口,`QWidget`作为子窗口,并利用`QObject`的`show()`和`raise_()`方法来实现窗口间的切换和层级管理。首先,在主窗口的`.ui`或`.py`文件里,添加一个QPushButton事件连接到打开子窗口的函数:
```python
from PyQt5.QtWidgets import QMainWindow, QPushButton, QWidget
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
# ... 初始化主窗口UI
button = QPushButton('打开子窗口', self)
button.clicked.connect(self.show_sub_window)
def show_sub_window(self):
sub_window = SubWindow() # 创建子窗口实例
sub_window.show() # 显示子窗口
self.raise_() # 确保主窗口始终在最前面
# 类似于这样的子窗口类
class SubWindow(QWidget):
def __init__(self):
super(SubWindow, self).__init__()
# ... 初始化子窗口UI
close_button = QPushButton('关闭', self)
close_button.clicked.connect(self.close) # 关闭子窗口事件
def closeEvent(self, event): # 重写close事件处理
event.accept()
```
在Eric6环境下,过程类似,只是语法略有差异。在`MainWindow`类中,你需要使用`connect()`函数连接信号(按钮点击)和槽(打开子窗口),以及在`SubWindow`中设置关闭按钮的点击事件。
阅读全文