pyqt qdialog 默认按钮_PyQt5 控件学习(一个一个学习之QDialog)

QDialog 的继承图:

QDialog 的描述:

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

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

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

有关模态(阻塞):

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

QDialog 的继承:

它直接继承自 QWidget

QDialog 的功能作用:

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

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

QDialog 的功能作用之弹出:

from PyQt5.Qt import * #刚开始学习可以这样一下导入

importsys#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 * #刚开始学习可以这样一下导入

importsys#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 * #刚开始学习可以这样一下导入

importsys#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 * #刚开始学习可以这样一下导入

importsys#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 * #刚开始学习可以这样一下导入

importsys#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

总结:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值