文档章节

PyQt5 控件学习(一个一个学习之QDialog)

o
 osc_wws45aot
发布于 2019/08/22 10:30
字数 1030
阅读 18
收藏 0

精选30+云产品,助力企业轻松上云!>>>

QDialog 的继承图:

 

QDialog 的描述:

QDialog 主要提供的是这四个里面的一些共性!

它主要是分四类,字体,颜色,文件,自定义输入。

它是对话框的基类,它是顶级窗口,它主要用于和用户简短的通信。

有关模态(阻塞):

 

对话框一般有返回值,它们有默认按钮

QDialog 的继承:

它直接继承自 QWidget 

 

 

QDialog 的功能作用:

QDialog 的功能作用之控件的创建:

QDialog 的功能作用之模态设置:

QDialog 的功能作用之弹出:

from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys
#1,创建app
app  = QApplication(sys.argv)


#2,控件的操作:
#创建控件
window = QWidget()


#设置控件
window.setWindowTitle("QDialog的学习")
window.resize(500,500)

dialog = QDialog(window)  #对话框和 主窗口不关联

dialog.setWindowTitle("对话框")

############################应用程序级别的模态调用###############################
# dialog.exec()   #当当前对话框没有操作完成时,才可以和其他窗口交互


############################应用程序级别的模态调用###############################

############################窗口级别的模态调用###############################

# dialog.open()  #它阻塞的仅仅是和对话框关联的窗口,但是程序中其他的窗口还是可以和用户交互的。
# dialog = QDialog(window)  #对话框和 主窗口关联(此时仍然是顶层弹出) 如果这样就要阻塞了

#它的应用场景一般是选择文件,选择颜色



############################窗口级别的模态调用###############################


############################非模态###############################
# dialog.show()
#它的应用场景是  查找,替换的窗口

#但是,非模态结合两个方法也可以变为模态对话框。
dialog.show()
dialog.setModal(True)  #窗口级别的阻塞


############################非模态###############################


#展示控件
window.show()

#3,进入消息循环
sys.exit(app.exec_())
View Code

 

QDialog 的功能作用之是否显示尺寸调整控件:

 

from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys
#1,创建app
app  = QApplication(sys.argv)


#2,控件的操作:
#创建控件
window = QWidget()


#设置控件
window.setWindowTitle("QDialog的学习")
window.resize(500,500)

dialog = QDialog(window)  #对话框和 主窗口不关联

dialog.setWindowTitle("对话框")

dialog.open()

dialog.setSizeGripEnabled(True)


#展示控件
window.show()

#3,进入消息循环
sys.exit(app.exec_())
View Code

 

 

QDialog 的功能作用之常用操作槽:

 

from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys
#1,创建app
app  = QApplication(sys.argv)


#2,控件的操作:
#创建控件
window = QWidget()


#设置控件
window.setWindowTitle("QDialog的学习")
window.resize(500,500)

dialog = QDialog(window)  #对话框和 主窗口不关联
dialog.setWindowTitle("对话框")

btn = QPushButton(dialog)
btn.setText("btn1")
btn.move(20,20)
btn.clicked.connect(lambda :dialog.accept())  #接收

btn2 = QPushButton(dialog)
btn2.setText("btn2")
btn2.move(60,60)
btn2.clicked.connect(lambda :dialog.reject()) #拒绝

btn3 = QPushButton(dialog)
btn3.setText("btn3")
btn3.move(100,100)
btn3.clicked.connect(lambda :dialog.done(8))  #自定义


ret  = dialog.exec()
print(ret)


#展示控件
window.show()

#3,进入消息循环
sys.exit(app.exec_())
View Code

 

QDialog 的功能作用之设置和获取数值:

from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys
#1,创建app
app  = QApplication(sys.argv)


#2,控件的操作:
#创建控件
window = QWidget()


#设置控件
window.setWindowTitle("QDialog的学习")
window.resize(500,500)

dialog = QDialog(window)  #对话框和 主窗口不关联
dialog.setWindowTitle("对话框")

btn = QPushButton(dialog)
btn.setText("btn1")
btn.move(20,20)
btn.clicked.connect(lambda :dialog.accept())  #接收

btn2 = QPushButton(dialog)
btn2.setText("btn2")
btn2.move(60,60)
btn2.clicked.connect(lambda :print(dialog.result()))  # 此时点 btn2 和 btn3 都不会关闭对话框了

btn3 = QPushButton(dialog)
btn3.setText("btn3")
btn3.move(100,100)
btn3.clicked.connect(lambda :dialog.setResult(888))


ret  = dialog.exec()
print(ret)


#展示控件
window.show()

#3,进入消息循环
sys.exit(app.exec_())
View Code

 

QDialog 的信号:

from PyQt5.Qt import * #刚开始学习可以这样一下导入
import sys
#1,创建app
app  = QApplication(sys.argv)


#2,控件的操作:
#创建控件
window = QWidget()


#设置控件
window.setWindowTitle("QDialog的学习")
window.resize(500,500)

dialog = QDialog(window)  #对话框和 主窗口不关联
dialog.setWindowTitle("对话框")

btn = QPushButton(dialog)
btn.setText("btn1")
btn.move(20,20)
btn.clicked.connect(lambda :dialog.accept())  #接收

btn2 = QPushButton(dialog)
btn2.setText("btn2")
btn2.move(60,60)
btn2.clicked.connect(lambda :dialog.reject()) #拒绝

btn3 = QPushButton(dialog)
btn3.setText("btn3")
btn3.move(100,100)
btn3.clicked.connect(lambda :dialog.done(8))  #自定义

############################信号###############################
#1
dialog.accepted.connect(lambda :print("接受"))
#2
dialog.rejected.connect(lambda :print("拒绝"))
#3
dialog.finished.connect(lambda val:print("完成按钮",val))  #点击btn3 只触发一个信号 

############################信号###############################

dialog.open()


#展示控件
window.show()

#3,进入消息循环
sys.exit(app.exec_())
View Code

 

总结:

下面看它的子类中的一些特殊功能:
首先看QFontDialog: https://www.cnblogs.com/zach0812/p/11392843.html

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
pyqt5 学习总结

关于基类 一般的文件都会基于QWidget,QtWidgets.QMainWindow 或QDialog,like this class Example(QWidget): QWidget类是所有用户界面对象的基类,QMainWindow和QDialog都是QWidget的子类。...

osc_xhmg53h3
2019/05/05
2
0
PyQt5 控件学习(一个一个学习之QProgressBar)

QProgressBar 的继承图: QProgressBar 的描述: 进度条 QProgressBar 的继承: 它是直接继承自QWidget QProgressBar 的功能作用: QProgressBar 的功能作用之构造函数: from PyQt5.Qt impo...

osc_0jbt10ev
2019/08/23
10
0
PyQt5 控件学习(一个一个学习之QRubberBand)

QRubberBand 继承图: QRubberBand 描述: 它一般都是结合鼠标来完成某种需求。 QRubberBand 继承: 它是继承自QWidget 的 QRubberBand 功能作用: from PyQt5.Qt import * #刚开始学习可以这...

osc_wws45aot
2019/08/22
2
0
PyQt5_主要的类库

1.PyQt5包括的主要模块如下。 QtCore模块——涵盖了包的核心的非GUI功能,此模块被用于处理程序中涉及的时间、文件、目录、数据类型、文本流、链接、QMimeData、线程或进程等对象。 QtGui模块...

osc_9xhruhtf
2019/09/03
4
0
PyQt5 控件学习(一个一个学习之QMessageBox)

QMessageBox继承图: QMessageBox描述: QMessageBox继承: 它继承自QDialog QMessageBox功能作用: QMessageBox功能作用之构造函数: from PyQt5.Qt import * #刚开始学习可以这样一下导入i...

osc_etp9xzp8
2019/08/23
2
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 那么长的绳子,你这是放风筝呢

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @ 巴拉迪维:黑豹乐队的单曲《无地自容》 耳畔突然响起旋律,是那首老歌。中国摇滚有了《一无所有》不再一无所有;中国摇滚有了《无地自容》不...

小小编辑
24分钟前
31
1
《吐血整理》-顶级程序员书单集

你知道的越多,你不知道的越多 给岁月以文明,而不是给文明以岁月 前言 王潇:格局决定了一个人的梦想,梦想反过来决定行为。 那格局是什么呢? 格局是你能够看见的深度、广度和密度。 王潇认...

敖丙
2019/12/11
0
0
我可以在Android版式中加下划线吗? - Can I underline text in an Android layout?

问题: 如何在Android布局xml文件中定义带下划线的文本? 解决方案: 参考一: https://stackoom.com/question/A31z/我可以在Android版式中加下划线吗 参考二: https://oldbug.net/q/A31z/...

法国红酒甜
27分钟前
18
0
干掉ELK | 使用Prometheus+Grafana搭建监控平台

什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。 Prometheus的特点 · 多维度...

木九天
46分钟前
34
0
拉勾网拉你上勾

预览 需求简介 拉勾网是一个互联网行业的一个招聘网站,上面有许多职位,于是乎,小编想提取指定职位的基本信息(职位名,薪水,工作经验,工作地点,教育背景),然后插入 MongoDB 数据库,...

木下瞳
2019/04/17
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部