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

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_())

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_())

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_())

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_())

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_())

总结:

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

原文地址:https://www.cnblogs.com/zach0812/p/11392611.html

时间: 2024-11-08 21:53:39

PyQt5 控件学习(一个一个学习之QDialog)的相关文章

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

QAbstractButton : 前面说的QObject 和 QWidget 是最主要的两个基类.它们都是gui (Graphical User Interface)编程中的控件的共性.下面就说下他们的子类的学习. 但是,学习它们子类的时候,我们不是按照它们的继承关系来学习的,而是按照控件的功能来学习的! 主要分为两部分:基础控件和高级控件 下面看按钮: 我们不是直接学QPushButton ,而是要先学它继承的类----QAbstactButton. QAbstractButton描述: 它

DEV中的TreeList控件应用的一个小效果实现【转载】

我使用最多的DEV控件就是这个TreeList啦,当然用好它很不简单,如果用好它,能做出很精彩的树形层次结构图.TreeList控件很强大,以至于你看DEV自带的DEMO,也得浪费你很长时间应用.DEV控件的DEMO只是告诉你有些什么功能,只是抛砖引玉,决不能照搬DEMO! 用好TreeList控件绝对会让你的软件锦上添花!精益求精促使我总想用TreeList实现出更好的效果,但对TreeList控件的每一步深入学习,都需要花费不要时间和精力.现在记录一下我学习使用该控件的一个小功能的过程. 就

Android必备:Android UI控件的了解与学习

看这里:Android必备:Android UI控件的了解与学习 由于工作需要,最近一段时间,需要进行Android App开发的学习,之前简单的进行过Android的了解,对于基本的Android环境的搭建等已经有过整理,一个Android App是由一个或多个Activity组成,每一个Activity都是一个UI容器,也就是一个屏幕界面,一个界面的组成则是由一组Android UI控件组成,本篇,我们就来简单的对Android UI控件进行初步的了解和学习. Android UI控件根据其

DEV中的TreeList控件应用的一个小效果实现——个人总结

我使用最多的DEV控件就是这个TreeList啦,当然用好它很不简单,如果用好它,能做出很精彩的树形层次结构图.TreeList控件很强大,以至于你看DEV自带的DEMO,也得浪费你很长时间应用.DEV控件的DEMO只是告诉你有些什么功能,只是抛砖引玉,决不能照搬DEMO! 用好TreeList控件绝对会让你的软件锦上添花!精益求精促使我总想用TreeList实现出更好的效果,但对TreeList控件的每一步深入学习,都需要花费不要时间和精力.现在记录一下我学习使用该控件的一个小功能的过程. 就

WPF中一个控件绑定另一个控件的属性

原文:WPF中一个控件绑定另一个控件的属性 如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin="50,130"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width="40"/> </Grid.ColumnDefinitions>

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

QCommandLinkButton: 它和QPushButton 差不多,这里稍微了解: QCommandLinkButton的功能作用: 1 from PyQt5.Qt import * #刚开始学习可以这样一下导入 2 import sys 3 #1,创建app 4 app = QApplication(sys.argv) 5 6 7 #2,控件的操作: 8 #创建控件 9 window = QWidget() 10 11 12 #设置控件 13 window.setWindowTitle

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

QRadioButton 继承图: 它是按钮中的第四个类别,就是个单选按钮! QRadioButton 描述: QRadioButton 继承: 它的父类是QAbstractButton QRadioButton 功能作用: 创建按钮控件: 1 from PyQt5.Qt import * #刚开始学习可以这样一下导入 2 import sys 3 #1,创建app 4 app = QApplication(sys.argv) 5 6 7 #2,控件的操作: 8 #创建控件 9 window =

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

QToolButton 的继承图: QToolButton 之描述: 一个主窗口,我们一般分为 从上到下,标题栏 ,菜单栏(文字) ,工具栏(一般都是图标,没文字),工作区,状态栏. 我们这里说的是工具栏 QToolButton 之继承: 它继承自QAbstractButton ! QToolButton 之功能作用: 1 from PyQt5.Qt import * #刚开始学习可以这样一下导入 2 import sys 3 #1,创建app 4 app = QApplication(sys.

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

QPlainTextEdit继承图 : QPlainTextEdit描述 : 它和QTextEdit 差不多(但是它不是继承QTextEdit),但是它更适合大的文本!  具体差异看上面! QTextEdit 是按照像素来滚动的,而QPlainTextEdit 是按照行来滚的, 证明如下: from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__in

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

QKeySequenceEdit 的继承图 : QKeySequenceEdit 的描述 : QKeySequenceEdit 的继承 : 它是继承自QWidget  的 from PyQt5.Qt import * #刚开始学习可以这样一下导入 import sys class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("QKeySequenceEdit 控件的学习") se