QDialog 简介

转载自https://blog.csdn.net/jia666666/article/details/81539733 前言为了更好的实现人机交互,比如window和linux等系统均会提供一系列的标准对话框来完成特定场景下的功能,比如选择字号大小。字体颜色等,在PyQt5中定义了一系列的标准对话框类,让使用者能够方便快捷地通过各个类完成字号大小,字体颜色以及文件的选择等QD…

大家好,又见面了,我是你们的朋友全栈君。

转载自
https://blog.csdn.net/jia666666/article/details/81539733

前言

为了更好的实现人机交互,比如window和linux等系统均会提供一系列的标准对话框来完成特定场景下的功能,比如选择字号大小。字体颜色等,在PyQt5中定义了一系列的标准对话框类,让使用者能够方便快捷地通过各个类完成字号大小,字体颜色以及文件的选择等

QDialog类的子类主要有QMessageBox,QFileDialog,QColorDialog,QFontDialog,QInputDialog等,这些内容随后就会介绍到

QDialog类中的常用方法

方法 描述
setWindowTitle() 设置对话框标题
setWindowModality() 设置窗口模态,取值如下
Qt.NonModal:非模态,可以和程序的其他窗口进行交互
Qt.WindowModal:窗口模态,程序在未处理玩当前对话框时,将阻止和对话框的父窗口进行交互
Qt.ApplicationModal:应用程序模态,阻止和任何其他窗口进行交互

实例:QDialog的使用

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class DialogDemo(QMainWindow):
    def __init__(self,parent=None):
        super(DialogDemo, self).__init__(parent)
        #设置主界面的标题及初始大小
        self.setWindowTitle('Dialog例子')
        self.resize(350,300)

        #创建按钮,注意()内的self必不可少,用于加载自身的一些属性设置
        self.btn=QPushButton(self)
        #设置按钮的属性:文本,移动位置,链接槽函数
        self.btn.setText('弹出对话框')
        self.btn.move(50,50)
        self.btn.clicked.connect(self.showdialog)

    def showdialog(self):
        #创建QDialog对象
        dialog=QDialog()
        #创建按钮到新创建的dialog对象中
        btn=QPushButton('ok',dialog)
        #移动按钮,设置dialog的标题
        btn.move(50,50)
        dialog.setWindowTitle("Dialog")
        #设置窗口的属性为ApplicationModal模态,用户只有关闭弹窗后,才能关闭主界面
        dialog.setWindowModality(Qt.ApplicationModal)
        dialog.exec_()

if __name__ == '__main__':
    app=QApplication(sys.argv)
    demo=DialogDemo()
    demo.show()
    sys.exit(app.exec_())
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

运行程序,显示效果如下
这里写图片描述
代码分析:

在这个例子中,Dialog窗口的WindowModality属性决定是否为模态或非模态,当用户按下ESC键时,对话框窗口将会默认调用QDialog.reject()方法,然后关闭对话框窗口
单击QWidget窗口中的PushButton按钮时,将生成一个对话框窗口,在对话框窗口的标题栏上没有最小化和最大化控件,以下代码将给按钮的clicked信号添加槽函数showdialog()

self.btn.clicked.connect(self.showdialog)
 
 
 
  • 1

由于Dialog窗口的WindowModality属性设置为Qt.ApplicationModal模态,用户只有关闭所弹出的对话框窗口后,才能关闭主窗口,以下代码用于设置对话框模态

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127127.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月9日 上午7:00
下一篇 2022年4月9日 上午7:00


相关推荐

  • mysql replace into 的使用情况

    mysql replace into 的使用情况

    2021年11月27日
    40
  • 当小样本遇上机器学习 fewshot learning

    当小样本遇上机器学习 fewshot learning引言深度学习(deeplearning)已经广泛应用于各个领域,解决各类问题,例如在图像分类问题下,如图1,区分这10类目标的准确率目前可以轻松做到94%。然而,deeplearning是一种datahungry的技术,需要大量的标注样本才能发挥作用。图1现实世界中,有很多问题是没有这么多的标注数据的,获取标注数据的成本也非常大,例如在医疗领域、安全领域等。因此,我们现在讨论的是…

    2022年4月28日
    67
  • docker镜像容器导出

    docker镜像容器导出1 docker 镜像 容器导出方式 dockersave IDor Namedockerex IDor Name2 save 和 export 区别 1 对于 DockerSave 方法 会保存该镜像的所有历史记录 2 对于 DockerExport 方法 不会保留历史记录 即没有 commit 历史 3 dockersave 保存的是镜像 image dockerexport 保存的是容器 container 4 dockerload 用来载入镜像包 dock

    2025年11月6日
    5
  • 查看pip版本

    查看pip版本查询安装的 pip 版本

    2026年3月26日
    2
  • CentOS搭建SVN服务器

    CentOS搭建SVN服务器

    2021年6月1日
    102
  • JVM调优工具总结

    JVM调优工具总结一、jps:虚拟机进程状况工具它可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(MainClass,main()函数所在的类)名称以及正在运行的本地虚拟机唯一ID(LVMID);它是使用率最高的一个JDK命令行工具,因为其他的命令行工具都需要输入查询到的ID来确定要监控的是哪一个虚拟机进程。命令格式:jps[options][hostid]选项作用-q只…

    2022年5月6日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号