1、QDialog简介:对话框:在主窗口中操作,有可能触发某一个行为动作,会弹出一个新的对话窗口,解决一个临时性的会话,在对话窗口中执行某一个功能。

对话框还可以展示错误信息、进度信息(属于展示空间)。

模态:阻塞式的当前的对话框处理完才能去处理其他事情。

非模态:不会阻塞与对话框关联的窗口以及与其他窗口进行交互。

QDialogs可以提供返回值,他们都有默认按钮。继承于QWidget()。

d = QDialog():四种展示方法的区别

调用exec()方法他就变成应用程序级别的模态方法;open()变成窗口级别的模态方法;show()变成非模态对话框。

①应用程序级别的测试;只要这个窗口没有操作完成,其他窗口都无法操作。(QDialog窗口被隐藏在底下)

②窗口级别的模态:显示两个窗口。(只会阻塞与当前窗口有关联的窗口)

③非模态级别的:d.show()他们互不影响。

d.setModal(True)将他变为模态的对话窗口。

setWindowModality()改变窗口模态级别。

2、QDialog功能作用:

是否显示尺寸调整控件:对话框的右下角显示一个小控件,小控件可以通过鼠标来拖拽改变窗口的尺寸。(可以改变大小效果)

                                

from PyQt5.Qt import *
import sysapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QDialog")
window.resize(500, 500)# 永远是顶层窗口
d = QDialog(window)
btn1 = QPushButton(d)
btn1.setText("btn1")
btn1.move(20, 20)
btn1.clicked.connect(lambda: d.accept())btn2 = QPushButton(d)
btn2.setText("btn2")
btn2.move(60, 60)
btn2.clicked.connect(lambda: d.reject())btn3 = QPushButton(d)
btn3.setText("btn3")
btn3.move(60, 160)
btn3.clicked.connect(lambda: d.done(8))d.setWindowTitle("对话框")
d.resize(300, 300)
d.setWindowModality(Qt.WindowModal)
d.setSizeGripEnabled(True)
#d.show()
# 应用程序级别的模态对话框
# 通过不同的数值判断用户做的怎样的操作
result = d.exec()
print(result)window.show()
sys.exit(app.exec_())

设置和获取数值:直接操作整个对话框的结果:

借助该方法给对话框设置最终的结果,也可以获得相关的结果,并且不关闭对话框也可以。

btn2 = QPushButton(d)
btn2.setText("btn2")
btn2.move(60, 60)
# btn2.clicked.connect(lambda: d.reject())
btn2.clicked.connect(lambda: print(d.result()))btn3 = QPushButton(d)
btn3.setText("btn3")
btn3.move(60, 160)
# btn3.clicked.connect(lambda: d.done(8))
btn3.clicked.connect(lambda: d.setResult(888))
d.setWindowTitle("对话框")
d.resize(300, 300)
d.setWindowModality(Qt.WindowModal)
d.setSizeGripEnabled(True)
#d.show()
# 应用程序级别的模态对话框
# 通过不同的数值判断用户做的怎样的操作
result = d.exec()

3、信号:对应不同的槽函数:()accept对应接受操作所发射的信号,reject对应拒绝信号所发射的信号;不管以上那种信号,他最后都会发射完成信号。

from PyQt5.Qt import *
import sysapp = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("QDialog")
window.resize(500, 500)# 永远是顶层窗口
d = QDialog(window)
btn1 = QPushButton(d)
btn1.setText("btn1")
btn1.move(20, 20)
btn1.clicked.connect(lambda: d.accept())btn2 = QPushButton(d)
btn2.setText("btn2")
btn2.move(60, 60)
btn2.clicked.connect(lambda: d.reject())
#btn2.clicked.connect(lambda: print(d.result()))btn3 = QPushButton(d)
btn3.setText("btn3")
btn3.move(60, 160)
btn3.clicked.connect(lambda: d.done(8))
#btn3.clicked.connect(lambda: d.setResult(888))d.accepted.connect(lambda: print("点击了,接受按钮"))
d.rejected.connect(lambda: print("点击了,拒绝按钮"))
d.accepted.connect(lambda val: print("点击了,完成按钮", val))d.setWindowTitle("对话框")
d.resize(300, 300)
d.setWindowModality(Qt.WindowModal)
d.setSizeGripEnabled(True)
#d.show()
# 应用程序级别的模态对话框
# 通过不同的数值判断用户做的怎样的操作
result = d.exec()
print(result)window.show()
sys.exit(app.exec_())

QDialog----简介相关推荐

  1. QDialog 简介

    前言 为了更好的实现人机交互,比如window和linux等系统均会提供一系列的标准对话框来完成特定场景下的功能,比如选择字号大小.字体颜色等,在PyQt5中定义了一系列的标准对话框类,让使用者能够方 ...

  2. pyqt5设置dialog的标题_PyQt5Day29--展示控件QDialog(对话框)

    一.QDialog简介 QDialog包含了QErrorMessage.QProgressDialog和QMessageBox三个子类. 二.子类QErrorMessage 1.简单介绍 错误消息小部 ...

  3. Qt中的QDialog

    文章目录 1 Qt中的QDialog 1.1 QDialog简介 1.2 模态对话框和非模态对话框 1.3 对话框的返回值 2 登陆对话框实例分析 2.1 分析 2.2 代码实现 2.3 登录对话框的 ...

  4. Py之GUI之PyQt:PyQt5的简介、入门、安装(QtCreator和QtDesigner)图文教程之详细攻略

    Py之GUI之PyQt:PyQt5的简介.入门.安装(QtCreator和QtDesigner)图文教程之详细攻略 目录 PyQt的简介 1.Qt特点 2.QT中QT Widgets Applicat ...

  5. 【Qt教程】1.10 - Qt5模态与非模态对话框( QDialog)

    1. 对话框简介 对话框简介:通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互. 对话框分为模态对话框和非模态对话框: 模态对话框,会阻塞同一应用程序中其他窗口的输入. 非模态 ...

  6. Qt界面编程-Qt简介

    一.Qt简介 Qt是什么 图形用户程序框架,是对底层应用编程接口API面向对象的封装. 是一套基于C++语言的类库,专注但不局限于图形用户界面的开发,也可以进行系统调用.网络编程.数据库.2D/3D图 ...

  7. Python3 PyQt5 窗口(国际化/QMainWindow/QWidget/QDialog)

    Python3 PyQt5 窗口(国际化/QMainWindow/QWidget/QDialog) 本文由 Luzhuo 编写,转发请保留该信息. 原文: https://blog.csdn.net/ ...

  8. C++桌面应用开发(Qt学习)--Qt简介及第一个Qt程序

    Qt简介 历史: 1991 奇趣科技 优点:跨平台:接口简单,易上手:简化了内存管理操作 成功案例:Linux桌面环境:WPS:谷歌地图等 创建一个Qt程序 点击创建项目后,选择项目路径以及给项目起名 ...

  9. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

最新文章

  1. Ubuntu 常用操作
  2. python awk 读文件_测试python awk sed 读取文件指定位置时的性能
  3. 小牛照片恢复软件_电脑移动硬盘U盘数据恢复SD卡照片文件软件修复开盘远程维修服务...
  4. Java类的继承关键字_Java的第八天(类的继承、super关键字的使用、方法的重写)...
  5. html5视频播放自定义视频播放暂停,解决暂停按钮在视频画面中的问题
  6. 单用户修改root密码--redhat7.2 or centos7
  7. 7-2 多项式求和 (10 分)
  8. 【bzoj5099】[POI2018]Pionek 双指针法
  9. RocketMQ使用mmap - TODO
  10. 烽火HG220G-U E00L2.03M2000光猫改桥接教程
  11. MySQL重要但容易被忽略_MySQL自定义函数存储过程
  12. java和python互相调用
  13. 南航计算机考研专业课复习重点
  14. 在线视频播放加速方法
  15. 五、Ceph之RBD存储使用
  16. 正则表达式随记(3)常用的正则表达式
  17. Js勾选同意协议教程-更新篇
  18. 三维空间的坐标变换及其应用
  19. 【电子产品】关于指纹考勤机识别率下降
  20. Android 基础:Materia Design 定义视图阴影elevation和创建卡片CardView

热门文章

  1. mysql从库比主库数据多_linux mysql主从复制配置
  2. Android 入门记录-图片显示+隐藏
  3. 小程序从设计到开发过程详解
  4. 七夕王者荣耀服务器维护,王者荣耀新皮肤计划表泄露?伽罗守约皆有新皮肤,网友:可信度不高!...
  5. 告别GIF,使用Jetpack Compose打造可爱的天气动画
  6. 注意力机制:基于Yolov5/Yolov7的Triplet注意力模块,即插即用,效果优于cbam、se,涨点明显
  7. 各代iphone尺寸_iPhone 12系列与历代机型尺寸对比:iPhone 12 mini并非最小
  8. AMBA APB介绍
  9. 怎么把PDF转换成图片?来看看这几个方法吧!
  10. kali的安装与配置小结