qdialog 返回值_QDialog对话框

继承于 QWidget

应用程序级别的模态对话框:当模态的对话框出现时,用户必须首先对对话框进行交互,直到关闭对话框,然后才能访问程序中其他的窗口----exec()

窗口级别的模态对话框:该模态仅仅阻塞与对话框关联的窗口,但是依然允许用户与程序中其它窗口交互----open()

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

importsysfrom PyQt5.QtWidgets importQApplication, QWidget,QDialog,QPushButtonclassDemo(QWidget):def __init__(self):

super().__init__()

self.resize(300,300)

self.setWindowTitle('QDialog')

dl=QDialog(self) #创建对话框但不显示

#参数:就是对话框关联的窗口

self.dl=dl

dl.setWindowTitle('对话框')#dl.exec() #显示对话框--模态对话框---应用程序级别

#dl.open() #显示对话框--模态对话框---窗口级别

dl.resize(200,200)#dl.setModal(True) #设置成模态对话框

#此指令展示后,show显示的也是模态--默认窗口级别

#dl.setWindowModality(Qt.WindowModal) #设置对话框的级别

#Qt.NonModal 非模态对话框

#Qt.WindowModal 窗口级别

#Qt.ApplicationModal 应用程序级别

dl.setSizeGripEnabled(True)#是否显示尺寸调整控件

#isSizeGripEnabled() -> bool 返回是否显示尺寸调整控件

btn=QPushButton('接受',dl)

btn.move(20,100)

btn.clicked.connect(self.AA)

btn1= QPushButton('拒绝', dl)

btn1.move(120, 100)

btn1.clicked.connect(self.BB)

btn2= QPushButton('完成', dl)

btn2.move(120, 150)

btn2.clicked.connect(self.CC)#信号

dl.accepted.connect(self.DD) #接受槽函数

dl.rejected.connect(self.EE) #拒绝槽函数

dl.finished.connect(self.FF) #完成槽函数

#会向槽函数传递一个值--接受=1;拒绝=0,完成-自定义的值

#点击接受或拒绝,完成槽函数也运行

#dl.show() #显示对话框--非模态对话框

s=dl.exec() #通过返回值可以知道点击了哪个按钮

defFF(self,val):print('点击了完成按钮',val)defEE(self):print('点击了拒绝按钮')defDD(self):print('点击了接受按钮')defAA(self):

self.dl.accept()#发出接受信号--显示对话框函数的返回值1

defBB(self):

self.dl.reject()#发出拒绝信号--显示对话框函数的返回值0

defCC(self):

self.dl.done(8) #发出完成信号--显示对话框函数的返回值8--自定义返回值

#dl.setResult(99) #不关闭对话框-直接设置对话框的返回值

#result() -> int 获取返回值

if __name__ == '__main__':

app=QApplication(sys.argv)

demo=Demo()

demo.show()

sys.exit(app.exec_())

子类:QFontDialog--字体对话框

方法一:

importsysfrom PyQt5.QtWidgets importQApplication, QWidget,QPushButton,QFontDialog,QLabelclassDemo(QWidget):def __init__(self):

super().__init__()

self.resize(300,300)

self.setWindowTitle('QFontDialog') #创建字体对话框--但不显示

#QFontDialog(QFont, parent: QWidget = None) ---带默认字体

self.label=QLabel('塘沽五中',self)

self.label.move(100,10)

self.fdl=QFontDialog(self)

btn=QPushButton('按钮',self)

btn.move(100,250)

btn.clicked.connect(self.AA)#self.fdl.setOption(QFontDialog.NoButtons) #选项控制--单个选项

#QFontDialog.NoButtons 不显示“ 确定”和“ 取消”按钮。(对“实时对话框”有用。)

#参数2 True--设置该选项;False--取消该选项

#self.fdl.setOptions(QFontDialog.NoButtons | QFontDialog.MonospacedFonts) # 选项控制--多个选项

#QFontDialog.MonospacedFonts 只显示等宽字体

#QFontDialog.ProportionalFonts 显示比例字体

#QFontDialog.NonScalableFonts 显示不可缩放的字体

#QFontDialog.ScalableFonts 显示可缩放字体

#QFontDialog.DontUseNativeDialog 在Mac上使用Qt的标准字体对话框而不是Apple的原生字体面板。

#s=self.fdl.testOption(QFontDialog.NoButtons) #测试某个选项是否可以生效

#options() -> QFontDialog.FontDialogOption 获取当前的选项

#print(s)

#信号

self.fdl.currentFontChanged.connect(self.CC)#会向槽函数传递一个QFont

defCC(self,font):print('当前字体改变了',font)

self.label.adjustSize()

self.label.setFont(font)defAA(self):#self.fdl.open(self.BB)

#参数 槽函数--可选--点击字体对话框的OK按钮时,自动执行槽函数

s=self.fdl.exec()#点击确定按钮返回1,点击取消按钮返回0

ifs :print(self.fdl.selectedFont())#setCurrentFont(QFont) 设置当前字体

#currentFont() -> QFont 返回当前字体

defBB(self):print('字体已经被选择')

s=self.fdl.selectedFont() #返回字体对话框的字体

#

print(s)if __name__ == '__main__':

app=QApplication(sys.argv)

demo=Demo()

demo.show()

sys.exit(app.exec_())

方法二:

importsysfrom PyQt5.QtWidgets importQApplication, QWidget,QPushButton,QFontDialog,QLabelfrom PyQt5.QtGui importQFontclassDemo(QWidget):def __init__(self):

super().__init__()

self.resize(300,300)

self.setWindowTitle('QFontDialog') #创建字体对话框--但不显示

self.label=QLabel('塘沽五中',self)

self.label.move(100,10)

self.font=QFont('华文琥珀',20,QFont.Bold)

btn=QPushButton('按钮',self)

btn.move(100,250)

btn.clicked.connect(self.AA)defAA(self):#r=QFontDialog.getFont(self) #弹出字体对话框

#点击按钮后,返回一个元组--字体QFont和True或False(True表示点击的是确定按钮,False表示点击的是取消按钮)

#(, True)

r= QFontDialog.getFont(self.font,self,&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值