PyQt5——自定义对话框调用

目录

 

1. 概况

2. 模态对话框

2.1 模态对话框满足的条件

2.2 模态对话框的调用

3.非模态对话框

3.1 对话框设置条件

3.2 对话框调用


1. 概况

对话框分为模态对话框和非模态对话框,模态对话框在使用时是阻塞父窗口的,非模态对话框在使用时,对话框和父窗口是可同时操作的(具体请百度)。PyQt5对于两种对话框的调用不尽相同。

2. 模态对话框

2.1 模态对话框满足的条件

  • 在设置时,就需要设置为模态(ApplicationModal),可用designer设置或代码设置

  • 此对话框继承于QDialog,QMainWindow和QWidget不可行。

2.2 模态对话框的调用

  • 对对话框对象再封装,利于界面于业务分离
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : 2020/12/30 16:26
# @Author : luozc
# @Version:V 0.1
# @File : CustomCommandModal.py
# @desc : 自定义命令执行

from PyQt5.QtWidgets import QDialog
from customCommand import *

class CustomCommandModal(QDialog, Ui_CustomCommand):

    def __init__(self, parent=None):
        QDialog.__init__(self, parent)  #必须此调此构造方法来设置父窗口
        self.setupUi(self
  • 对封装对象调用
#导入窗口对象
from CustomCommandModal import *
#调用
customCommandDialog = CustomCommandModal(parent=self)
if customCommandDialog.exec_():
    pass
customCommandDialog.destroy()

 

3.非模态对话框

3.1 对话框设置条件

  • 对话框设置为非模态

  • 对话框不继承于QDialog, 可继承于QWidget或QMainWindow

3.2 对话框调用

  • 对对话框对象再封装,分离业务和界面
from PyQt5.QtWidgets import QMainWindow
from MainWindow import Ui_MainWindow

class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        '''
        指定父窗口,并显示对话框
        :param parent:
        '''
        super(MyWindow, self).__init__(parent)              #非模态对话框构造方法,super()用于多继承
        self.setupUi(self)
  • 调用封装的对话框对象
from MyWindow import *


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWin = MyWindow()
    myWin.show()
    sys.exit(app.exec_())

此外,也可以在调用对象中声明一个属性对象,然后再调用对话框对象赋值。来达到界面一直显示的作用。

界面一闪而过,请注意自己调用的变量生命周期

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值