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模态,用户只有关闭所弹出的对话框窗口后,才能关闭主窗口,以下代码用于设置对话框模态

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java 设置400错误_Java项目报400错误的原因与解决方法

    java 设置400错误_Java项目报400错误的原因与解决方法java项目中400错误介绍:(推荐:java视频教程)400BadRequest:请求中的语法错误。Reason-Phrase应当标志这个详细的语法错误,比如”MissingCall-IDheaderfield”。HTTP400错误-请求无效(Badrequest)在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请…

  • aligned_aligned_alloc

    aligned_aligned_alloc如果STL容器中的元素是Eigen库数据结构,例如这里定义一个vector容器,元素是Matrix4d,如下所示:vector<Eigen::Matrix4d>;这个错误也是和上述一样的提示,编译不会出错,只有在运行的时候出错。解决的方法很简单,定义改成下面的方式:vector<Eigen::Matrix4d,Eigen::aligned_allocator<…

  • 全国城市拼音对照表[通俗易懂]

    全国城市拼音对照表[通俗易懂]全国城市拼音对照表

  • StrictMode 详解「建议收藏」

    StrictMode 详解「建议收藏」StrictMode类是Android2.3(API9)引入的一个工具类,可以用来帮助开发者发现代码中的一些不规范的问题。比如,如果你在UI线程中进行了网络或者磁盘操作,StrictMode就会通过Log(logcat)或者对话框的方式把信息提示给你,因为让你的UI线程处理这里操作会被认为是不规范的做法,可能会让你的应用变得比较卡顿。官网文档:http://developer.an

  • ValidateRequest=”false” 是做什么的「建议收藏」

    ValidateRequest=”false” 是做什么的「建议收藏」ValidateRequest="false"比如说:有一个后台提交新闻的textbox。这个textbox用的是第三方的控件,比如说:比较好的有kindeditor。从kindeditor中输入的字符可以带有颜色,样式等,这样这些字符就带有html代码。所以ValidateRequest="false",才能成功提交,要不然,要报错。例子:…

  • 百度搜索引擎工作原理「建议收藏」

    百度搜索引擎工作原理「建议收藏」  关于百度以及其它搜索引擎的工作原理,其实大家已经讨论过很多,但随着科技的进步、互联网业的发展,各家搜索引擎都发生着巨大的变化,并且这些变化都是飞快的。我们设计这个章节的目的,除了从官方的角度发出一些声音、纠正一些之前的误读外,还希望通过不断更新内容,与百度搜索引擎发展保持同步,给各位站长带来最新的、与百度高相关的信息。本章主要内容分为四个章节,分别为:抓取建库;检索排序;外部投票;结果展现。…

发表回复

您的电子邮箱地址不会被公开。

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