QDialog----简介
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----简介相关推荐
- QDialog 简介
前言 为了更好的实现人机交互,比如window和linux等系统均会提供一系列的标准对话框来完成特定场景下的功能,比如选择字号大小.字体颜色等,在PyQt5中定义了一系列的标准对话框类,让使用者能够方 ...
- pyqt5设置dialog的标题_PyQt5Day29--展示控件QDialog(对话框)
一.QDialog简介 QDialog包含了QErrorMessage.QProgressDialog和QMessageBox三个子类. 二.子类QErrorMessage 1.简单介绍 错误消息小部 ...
- Qt中的QDialog
文章目录 1 Qt中的QDialog 1.1 QDialog简介 1.2 模态对话框和非模态对话框 1.3 对话框的返回值 2 登陆对话框实例分析 2.1 分析 2.2 代码实现 2.3 登录对话框的 ...
- Py之GUI之PyQt:PyQt5的简介、入门、安装(QtCreator和QtDesigner)图文教程之详细攻略
Py之GUI之PyQt:PyQt5的简介.入门.安装(QtCreator和QtDesigner)图文教程之详细攻略 目录 PyQt的简介 1.Qt特点 2.QT中QT Widgets Applicat ...
- 【Qt教程】1.10 - Qt5模态与非模态对话框( QDialog)
1. 对话框简介 对话框简介:通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互. 对话框分为模态对话框和非模态对话框: 模态对话框,会阻塞同一应用程序中其他窗口的输入. 非模态 ...
- Qt界面编程-Qt简介
一.Qt简介 Qt是什么 图形用户程序框架,是对底层应用编程接口API面向对象的封装. 是一套基于C++语言的类库,专注但不局限于图形用户界面的开发,也可以进行系统调用.网络编程.数据库.2D/3D图 ...
- Python3 PyQt5 窗口(国际化/QMainWindow/QWidget/QDialog)
Python3 PyQt5 窗口(国际化/QMainWindow/QWidget/QDialog) 本文由 Luzhuo 编写,转发请保留该信息. 原文: https://blog.csdn.net/ ...
- C++桌面应用开发(Qt学习)--Qt简介及第一个Qt程序
Qt简介 历史: 1991 奇趣科技 优点:跨平台:接口简单,易上手:简化了内存管理操作 成功案例:Linux桌面环境:WPS:谷歌地图等 创建一个Qt程序 点击创建项目后,选择项目路径以及给项目起名 ...
- etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...
最新文章
- Ubuntu 常用操作
- python awk 读文件_测试python awk sed 读取文件指定位置时的性能
- 小牛照片恢复软件_电脑移动硬盘U盘数据恢复SD卡照片文件软件修复开盘远程维修服务...
- Java类的继承关键字_Java的第八天(类的继承、super关键字的使用、方法的重写)...
- html5视频播放自定义视频播放暂停,解决暂停按钮在视频画面中的问题
- 单用户修改root密码--redhat7.2 or centos7
- 7-2 多项式求和 (10 分)
- 【bzoj5099】[POI2018]Pionek 双指针法
- RocketMQ使用mmap - TODO
- 烽火HG220G-U E00L2.03M2000光猫改桥接教程
- MySQL重要但容易被忽略_MySQL自定义函数存储过程
- java和python互相调用
- 南航计算机考研专业课复习重点
- 在线视频播放加速方法
- 五、Ceph之RBD存储使用
- 正则表达式随记(3)常用的正则表达式
- Js勾选同意协议教程-更新篇
- 三维空间的坐标变换及其应用
- 【电子产品】关于指纹考勤机识别率下降
- Android 基础:Materia Design 定义视图阴影elevation和创建卡片CardView
热门文章
- mysql从库比主库数据多_linux mysql主从复制配置
- Android 入门记录-图片显示+隐藏
- 小程序从设计到开发过程详解
- 七夕王者荣耀服务器维护,王者荣耀新皮肤计划表泄露?伽罗守约皆有新皮肤,网友:可信度不高!...
- 告别GIF,使用Jetpack Compose打造可爱的天气动画
- 注意力机制:基于Yolov5/Yolov7的Triplet注意力模块,即插即用,效果优于cbam、se,涨点明显
- 各代iphone尺寸_iPhone 12系列与历代机型尺寸对比:iPhone 12 mini并非最小
- AMBA APB介绍
- 怎么把PDF转换成图片?来看看这几个方法吧!
- kali的安装与配置小结