子界面界面

📅 2026/7/1 6:48:02
子界面界面
考之前的MyWidget类 我们可以创建一个子界面SubWindow123456789101112classSubWindow(QWidget):def__init__(self):super().__init__()self.setWindowTitle(子窗口)lbQLabel(子窗口)textQTextEdit()self.resize(200,200)ml1QVBoxLayout()ml1.addWidget(lb)ml1.addWidget(text)self.setLayout(ml1)br# 代码插入崩溃了只能使用老版的插入了创建一个子窗口【最近更新了win11所以界面ui和之前不太一样】指令那么如何像主窗口一样显示呢其实之前就有所涉及就是主函数中的【window.show() # 显示窗口】我们详细分析一下界面.show() 显示界面界面.hide() 隐藏界面界面.close() 关闭界面那么我们实际应用一下 View Code这样我们就得到了一个主窗口附带三个按键这里有一个小tip需要注意一下12# x SubWindow()self.xSubWindow()一定要使用self.的类名称定义否则会被视为临时数据删除导致界面显示只是一闪而过。界面间传输—自定义信号控件的函数命令其实很大程度上能够满足日常使用但总归有逻辑复杂的没办法直接应用。那么我们稍微讲一下自定义信号然后结合界面传输进行应用。导入库1fromPySide6.QtCoreimportSignal从核心库中导入信号库使用在类内定义例如1send_signalSignal(str)信号名称 Signal(接收的数据类型)1self.send_signal.connect(连接的控件)当信号被触发激活会调用连接的控件1self.send_signal.emit(text)将text发送给连接的控件当然这种直接连接进行传递的方式并不推荐因为它在实际应用中并不是那么好用如果更改就需要在多个地方进行更改界面间传输—主界面向子界面我们先创建好两个class类分别在主界面放入一个输入框和两个按钮一个按钮负责打开子界面另一个按钮负责发送输入框的内容给子界面。子界面放入一个输入框。我们先在主界面进行自定义信号定义1send_signalSignal(str)然后我设计逻辑将子信号的输入框settext内容绑定在信号上点击按钮2发送主界面输入框的内容12345678deftest(self):self.x.show()self.send_signal.connect(self.x.text.setText)self.btn1.clicked.connect(self.send)defsend(self):textself.text1.text()self.send_signal.emit(text)下面来看一下界面和应用吧界面间传输—子界面向主界面