900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > pyqt5设置dialog的标题_PyQt5Day29--展示控件QDialog(对话框)

pyqt5设置dialog的标题_PyQt5Day29--展示控件QDialog(对话框)

时间:2023-04-23 23:51:28

相关推荐

pyqt5设置dialog的标题_PyQt5Day29--展示控件QDialog(对话框)

一、QDialog简介

QDialog包含了QErrorMessage、QProgressDialog和QMessageBox三个子类。

二、子类QErrorMessage

1、简单介绍

错误消息小部件由文本标签和复选框组成;

该复选框允许用户控制将来是否再次显示相同的错误消息。

2、功能作用

代码:

1 #*******************QErrorMessage**********************开始

2 from PyQt5.Qt import *

3

4 classWindow(QWidget):5 def __init__(self):6 super().__init__()7 self.setWindowTitle("QErrorMessage")8 self.resize(500, 500)9 self.setup_ui()10

11 defsetup_ui(self):12 #em = QErrorMessage(self)

13 #em.setWindowTitle("错误提示")

14 #em.showMessage("哈哈,明天你好")

15 #em.show()

16

17 #QErrorMessage.qtHandler()

18 ## qDebug("xxxxxx")

19 #qWarning("12344")

20 pass

21

22 if __name__ == '__main__':23 importsys24

25 app=QApplication(sys.argv)26

27 window=Window()28 window.show()29

30 QErrorMessage.qtHandler()31 #qDebug("xxxxxx")

32 qWarning("12344")33

34 sys.exit(app.exec_())35 #*******************QErrorMessage**********************结束

三、子类QProgressDialog

1、简单介绍

提供了一个缓慢的操作进度反馈;进度对话框用于向用户指示操作将花费多长时间,并演示应用程序尚未冻结。

它还可以为用户提供中止操作的机会。

2、构造函数

3、弹出

(1)框架

(2)操作及展示

1 pd =QProgressDialog(self)2 pd.open(lambda: print("对话框被取消"))3 pd.setAutoClose(False) #取消自动关闭

4 #pd.setValue(50)

5 pd.setMinimumDuration(0) #设置等待时间为0

6 for i in range(1, 101):7 pd.setValue(i)

1 pd = QProgressDialog("xx1","xxx2",1,1000,self)

4、界面内容设置

(1)框架

(2)操作及展示

1 #界面内容设置

2 pd.setWindowTitle("进度对话框")3 #其余的一样

5、数据处理+是否取消+自动操作

(1)框架

(2)操作及展示

1 pd.setLabelText("下载进度")2 pd.setCancelButtonText("取消下载")3 pd.setRange(0, 100)4 pd.setValue(95)5 print(pd.minimum())6 #pd.setAutoReset(False) # 取消自动重置

7

8 timer =QTimer(pd)9

10

11 deftest():12 if pd.value() + 1 >= pd.maximum() orpd.wasCanceled():13 timer.stop()14 #自动关闭窗口有三个条件:值达到最大,自动重置,自动关闭属性为True

15 pd.setValue(pd.value() + 1)16

17

18 timer.timeout.connect(test)19 timer.start(1000)

四、子类QMessageBox

1、简单介绍

用于通知用户或请求用户的提问和接收应答一个模态对话框。

2、展示

(1)框架

(2)操作及展示

1 mb =QMessageBox(self)2 #mb.setModal(False) # 设置为非模态

3 mb.setWindowModality(Qt.NonModal) #设置为非模态

4 mb.show()

3、内容展示

(1)对话框标题、图标、主要标题

1 #对话框标题、图标

2 #mb = QMessageBox(QMessageBox.Warning,'xxx1','

xx2

',QMessageBox.Ok | QMessageBox.Discard,self)

3 mb =QMessageBox(self)4 mb.setWindowTitle("消息盒子") #窗口标题

5 mb.setIconPixmap(QPixmap('xxx.png').scaled(50, 50))6 mb.setText("

文件内容已经被修改<.h3>") #主要标题

7 mb.setInformativeText("是否直接关闭,不保存?") #提示信息

8 mb.setCheckBox(QCheckBox("下次不再提醒", mb)) #设置复选框

9 mb.setDetailedText("

你修改的内容是给每一行代码添加了一个分号

") #详情文本

10

11 #主要标题

12 #mb.setTextFormat(Qt.PlainText) # 主要标题设置为普通文本

13 mb.setTextFormat(Qt.RichText) #主要标题设置为富文本

(2)提示文本、详细文本、复选框

在上面已经操作过,参考上面的内容。

按钮的一些详细分类:

按钮的补充内容如下:(两部分)

1 #标准按钮

2 #mb.setStandardButtons(QMessageBox.Yes | QMessageBox.No)

3

4 #添加/移除角色按钮

5 btn = QPushButton('xxx1', mb)6 mb.addButton(btn, QMessageBox.YesRole)7 #mb.addButton(QPushButton('xxx2',mb),QMessageBox.NoRole)

8 btn2 = mb.addButton('xxx2', QMessageBox.NoRole) #有返回结果

9 #mb.removeButton(btn) # 移除按钮

10 #mb.removeButton(btn2) # 移除按钮

11

12 #默认按钮

13 mb.setDefaultButton(btn2) #默认选中xxx2按钮

14

15 #退出按钮

16 mb.setEscapeButton(btn2) #esc关联btn2

17

18

19 #信号

20 deftest(btn):21 if btn ==btn2:22 print("点击了第二个按钮")23 else:24 print("点击了第一个按钮")25

26

27 mb.buttonClicked.connect(test)28

29 mb.show()

4、文本交互

1 #文本交互

2 mb.setTextInteractionFlags(Qt.TextEditorInteraction) #控制主要标题

5、静态方法

1 #静态方法

2 #QMessageBox.about(self,'xx1','xx2') # 关于对话框

3 #QMessageBox.aboutQt(self,'xx1') # 关于qt

4 result = QMessageBox.question(self, 'xx1', 'xx2', QMessageBox.Ok |QMessageBox.Discard, QMessageBox.Discard)5 print(result, 'xxx')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。