本篇将会介绍:

使用qt设计师创建两个窗口

转换设计师UI代码为Python代码

从主窗口中调用对话框窗口

一、创建两个窗口

根据本篇的最终目标——在主窗口中调用对话窗口,我们先使用qt设计师创建两个窗口,其中一个主窗口MainWindows,一个含有两个按钮的对话窗口Dialog。

通过qt设计师新建一个MainWindows窗口,并在其中放置一个按钮:

保存为UI文件,再新建一个对话窗口:

同样保存为UI文件。

这样我们本地文件夹有两个可供转换为Python代码的UI文件:

二、转换UI文件为Python代码文件

保存好两个窗口的UI文件之后,我们继续使用pyuic5工具,将这两个UI文件转换为Python代码文件。

打开命令行输入:

pyuic5 -x -o mainWindow.py mainWindow.ui

pyuic5 -x -o dialog.py dialog.ui

运行一下转换出来的Python文件,是否正常:

一切正常,接下来我们可以进行两个窗口的连接和调用了。

三、从主窗口中调用对话框窗口

在进行下一步之前,我们先在主窗口mainWindow中添加一个文本标签,设置文本为空,字体加大:

有个这个label我们可以将对对话框的操作,反馈在label标签中。

保存UI文件,使用pyuic5重新转换一次Python代码。

为了在主窗口代码中调用对话框窗口,我们需要在mainWindow.py文件中引入对话框窗口:

from GUI import dialog

然后定义在主窗口的主类中定义一个方法,用来显示对话框窗口:

def click_button(self):

Dialog = QtWidgets.QDialog()

ui = dialog.Ui_Dialog()

ui.setupUi(Dialog)

Dialog.show()

Dialog.exec_()

定义好了方法,我们需要对按钮进行点击调用的绑定,这在setupUi()方法中进行设置:

self.pushButton.clicked.connect(self.click_button)

这样就实现了按钮点击绑定对话框。

我们知道,我们的对话框是有两个按钮的,一个“OK”,一个“Cancel”,在我们的GUI程序中,点击任意一个都会关闭对话框,效果似乎是一样的,但在PyQt5的内部机制的,这是两个不同的事件,下面我们就通过之前设置的label标签,展示其不同的机制。

我们修改一下click_button()方法,修改如下:

def click_button(self):

Dialog = QtWidgets.QDialog()

ui = dialog.Ui_Dialog()

ui.setupUi(Dialog)

Dialog.show()

# Dialog.exec_()

rsp = Dialog.exec_()

if rsp == QtWidgets.QDialog.Accepted:

self.label.setText("点击了OK")

else:

self.label.setText("点击了Cannel")

在这里我们将对话框的运行赋值给了一个变量,然后将其与QtWidgets.QDialog.Accepted进行比较,QtWidgets.QDialog.Accepted表示的是对话框的接收事件,也就是“OK”代表的事件,如果为接收时间,设置label标签为“点击了OK”,否则设置label标签为“点击了Cannel”

分享到:

python 如何做密码对话框_Python GUI教程(八):在主窗口中调用对话框相关推荐

  1. python的messagebox的用法_Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解...

    本文实例讲述了Python GUI编程学习笔记之tkinter中messagebox.filedialog控件用法.分享给大家供大家参考,具体如下: 相关内容: messagebox 介绍 使用 fi ...

  2. 爬虫技术python爬到女性语音_python爬虫看看虎牙女主播中谁最“顶”步骤详解

    网页链接:https://www.huya.com/g/4079 这里的主要步骤其实还是和我们之前分析的一样,如下图所示: 这里再简单带大家看一下就行,重点是我们的第二部分. 既然网页结构我们已经分析 ...

  3. python闹钟界面源码_Python GUI 教程 25行代码写一个小闹钟

    今天我们讲一下用Python写的GUI小程序.一个小闹钟(只是屏幕提示,没有声音哦) 让我们先介绍这个闹钟如何奇葩. 需要通过命令行启动. 没有标题栏. 没菜单. 甚至没有关闭按钮. 没有运行界面. ...

  4. wpf中的点击窗口放大放小按钮怎么写_Python tkinter教程01:创建窗口

    往期回顾 我想问下,你为什么看这里?这是第一期 文章目录 0 准备工作 1 创建空白窗体 2 窗口标题 3 窗口大小与位置 4 锁定窗口大小 5 窗口图标 6 隐藏与显示窗口 其它 0 准备工作 要使 ...

  5. 518抽奖软件源码之:主窗口上含对话框时如何最小化

    在开发"518抽奖软件"的时候,需要用到主窗口上含对话框时最小化的功能. 本来很简单的一行代码 ShowWindow(SW_MINIMIZE) 即可,但是这个代码在XP系统下不能用 ...

  6. 用qt做python界面设计_Python GUI教程(六):使用Qt设计师进行窗口布局

    本篇介绍使用qt设计师进行GUI窗口的布局管理,主要包含以下内容:使用Qt设计师布局我们的窗口部件: 垂直布局: 水平布局: 网格布局: 使用间隔: 使用"伙伴"将label标签与 ...

  7. python 动画场景_Python GUI教程(十五):在PyQt5中使用动画

    QT作为一个全面的桌面应用程序开发包,其自然提供了对图像的动画支持.本篇文章中,就来简单地在PYQt5中使用Animation动画功能. 本篇将会依次完成以下功能: 在GUI界面中显示一个图片(用一个 ...

  8. python qt gui教程_Python GUI教程(四):安装并使用Qt设计师设计Python GUI

    一.安装PyQt5 设计师工具 安装 默认情况下,我们在安装PyQt5的时候会自动安装Qt设计师软件: 如果没有安装的,我们可以使用Python包管理工具pip进行安装: pip install py ...

  9. python可以做什么开发-python适合做什么开发_python未来发展怎么样

    python概述 Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年.Python是纯粹的自由软件, 源代 ...

最新文章

  1. php找不到指定的模块,php中的dll“无法找到指定的模块”
  2. 查看每个表空间的使用率
  3. [转载]Windows Phone 系列- 本地数据存储
  4. STL之list学习(2)(list代码实现)(只剩最后一步,迭代器升级!!)
  5. Spring MVC 解读——@Autowired、@Controller、@Service从原理层面来分析
  6. 机器学习入门学习资料推荐
  7. 大锅菜机器人_炒菜机或者炒菜机器人有好用的吗 - 玩主论坛
  8. 计算机软考可以直接高级吗,计算机软考没有中级能考高级吗
  9. 通过ODBC实现ACCESS与SQL数据互导(临安人才网 )
  10. 基于差分分级和关联规则挖掘的气象数据关联性分析实战
  11. 机器学习中的数据预处理方法与步骤
  12. Salesforce入门教程(中文)-019 VF创建输入表单
  13. [C语言] 常量与变量
  14. 一年中最后一个月的最后一天说说_一年最后一天的说说
  15. 2018-2019-2 20175217 实验四《Android开发基础》实验报告
  16. 顶点计划:关于大学生自习的调研
  17. python 横坐标只显示部分数据,Python使用matplotlib在x轴上显示特定值
  18. 2021最新 JDK17 之 JAVA基础 Stream 流
  19. 《STL源码剖析》总结
  20. java字符转成ncr_用Java打印所有可能的nCr组合

热门文章

  1. Python使用matplotlib绘制正多边形逼近圆周
  2. Python使用逻辑回归算法根据三围数据判断用户性别
  3. Python符号计算入门及隐函数图像绘制
  4. 学习Python的好去处,微信公众号“Python小屋”
  5. php文件出现UTF-8错误,php – 文件格式UTF8与BOM导致“标头已发送” – 错误
  6. C++ 容器适配器priority_queue的使用及实现
  7. rocketmq消息持久化到mysql_RocketMQ之事务消息
  8. linux for循环套for循环格式_4.20 for循环 break、continue关键字
  9. r语言在线编译器w3c,R语言运算符知识点总结
  10. android的自定义字体,Android 自定义字体方案