pyqt5+qtdesigner 创建子窗口

我们这里创建的子窗口属于模式对话框,期间不可以操作父窗口,相关概念CSDN中很多。模式对话框的好处之一是可以影响父窗口。

创建新窗口

UI工具: Qt designer
注意点:模板使用 Dialog 开头的三者之一:
在这里插入图片描述

python代码:

子窗口:

from PySide2.QtGui import QIcon
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication, QMessageBox, QDialog
class addPane1(QDialog):
    def __init__(self):
        super().__init__()
        self.ui = QUiLoader().load('./ui/addBookPane.ui') # 动态加载UI文件
        self.ui.setWindowIcon(QIcon('./images/trans.png')) # icon
        self.ui.setWindowTitle('Circu') #$标题
        self.ui.submit.clicked.connect(self.submit) # 信号

在代码中去定义各种事件, 但创建的类需要继承QDialog

父窗口:
设置某一按钮btn点击信号关联createNew()

self.ui.btn.clicked.connect(self.createNew)
    def createNew(self):
        self.newWindow = anatherPane.addPane1()
        exitCode = self.newWindow.ui.exec() # 这里执行exec()而非show()方法
        if exitCode:
        	pass

相较于show(), exec()可以返回exit code(无异常则返回 0 ), 根据返回值可以进一步操作父窗口相关内容。

为什么继承QDialog, 模式对话框等问题详见参考资料。

参考资料: https://www.cnblogs.com/dcb3688/p/4586373.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值