前言

本节我们学习使用Qt Designer设计菜单栏、工具栏和状态栏,并完成一个串口工具的界面设计,在接下来教程中,我们将逐步实现一个串口调试助手,并详细介绍相关的其他知识点。

一、基础知识

1.菜单栏简介

菜单栏位于窗口上方,标题下面,菜单栏中的菜单属于QMenu类,下拉菜单和子菜单属于QAction类,点击任何QAction按钮时,QMenu对象都会触发triggered信号,本教程主要使用Designer设计,所以不需要了解QMenu和QAction的具体创建和添加到菜单栏等操作,仅需要关注triggered信号即可。

Qmenu和QAction中常用方法如下:

2.工具栏简介

QToolBar控件位于菜单栏下方,是由文本按钮,图标或其他小控件按钮组成的可移动面板,在Designer中可以通过在空白处右键选择Add Tool Bar,和菜单栏类似,每次点击工具栏中的按钮,都会触发Triggered信号。

QToolBar中常用方法如下:

3.状态栏简介

使用Qt Designer设计的MainWindow界面,最底部默认有一个水平状态栏(QstatusBar),用于显示永久或临时的状态信息

QStatusBar中常用方法如下:

二、实例

1. QT Designer设计UI

打开designer.exe,使用默认的Main Window创建,直接点击Create按钮即可

设计Main Window主页面如下,菜单栏中菜单分别为编辑、显示、工具、帮助,状态栏默认在最下方,可以在下方右键选择Remove Status Bar删除。

注意菜单栏中的菜单属于QMenu类,下拉菜单和子菜单属于QAction类

在UI界面下方空白处右键选择Add Toor Bar,将菜单栏子菜单对应的Action拖动到Tool Bar中,并按照下图方式为Action添加图标。

点击OK按钮后保存设置,界面如下:

其他Action按照同样方法操作,最终结果如下图:

2 将*.ui转换为ui_action_tool.py

进入run.py目录,输入如下命令:

pyuic5 -o ui_action_tool.py action_tool.ui

3 编写python程序

import sys

import PyQt5.QtWidgets as qw

import ui_action_tool

# sys.setrecursionlimit(1000000)

class myForm(qw.QMainWindow, ui_action_tool.Ui_MainWindow):

def __init__(self):

super().__init__()

self.setupUi(self)

self.statusbar.showMessage("status:ok")

self.action_start.triggered.connect(self.action_start_cb)

self.action_pause.triggered.connect(self.action_pause_cb)

self.action_exit.triggered.connect(self.action_exit_cb)

self.action_clear.triggered.connect(self.action_clear_cb)

def action_start_cb(self):

qw.QMessageBox.information(self, "提示", "您点击了Start")

def action_pause_cb(self):

qw.QMessageBox.information(self, "提示", "您点击了Pause")

def action_exit_cb(self):

qw.QMessageBox.information(self, "提示", "您点击了Stop")

def action_clear_cb(self):

qw.QMessageBox.information(self, "提示", "您点击了exit")

if __name__ == '__main__':

app = qw.QApplication(sys.argv)

w1 = myForm()

w1.show()

app.exec_()

上述程序为主页面的action_start、action_pause、action_exit、action_clear分别添加triggered信号对应的槽函数,槽函数中显示messagebox做出不同提示。

三、运行

进入文件目录,输入python3 run.py,即可弹出上述用QT Designer设计出来的MainWindow页面。

点击工具栏中最左边开始图片

点击工具栏中左边第二个暂停图片

点击工具栏中左边第三个停止图片

点击工具栏中最右边清除图片

四、结语

(1) 注意菜单栏中”编辑“下拉菜单中开始、暂停、停止、清屏Action和工具栏中的图片一一对应,都对应同一个triggered的槽函数。

(2)获取源码

关注公众号:一个物联网项目的前世今生,回复pyqt5即可。

寄语:一沙一世界,一叶一菩提

python没有上方工具栏_PyQt5快速上手基础篇8-菜单栏、工具栏和状态栏相关推荐

  1. python编程lcd显示_PyQt5快速上手基础篇2-按钮控制LCD屏显示

    前言 上一节我们完成了PyQt5开发环境搭建,本节开始我们正式进入PyQt5的世界,首先我给大家介绍下QT的信号与槽,然后利用这一特点完成点击按钮触发LCD屏显示功能. 一.基础知识 1. PyQt5 ...

  2. pyqt5从子目录加载qrc文件_PyQt5快速上手基础篇10-QSettings用法

    前言 本节我们学习使用PyQt5的QSettings的用法,使用QSettings可以记住用户操作UI界面设置的参数,下次打开软件的时候,会直接加载用户上一次设置的参数. 一.基础知识 1.QSett ...

  3. exe打包工具_pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序

    前言 本节我们学习如何使用Pyinstaller打包pyqt5应用程序,pyqt5的打包要比之前文章中讲述的tkinter的打包稍微复杂点,主要区别在于pyqt5打包需要导入Qt相关库,笔者开始打包时 ...

  4. pyqt5设置dialog的标题_PyQt5快速上手基础篇7-弹出dialog

    前言 本节我们学习QDialog的使用,在主页面点击按钮弹出一个新的Dialog. 一.基础知识 1. dialog简介 窗口是GUI设计中不可获取的一部分,方便用户和程序直接交互,简化使用:Qdia ...

  5. designer pyqt5 界面切换_PyQt5快速上手基础篇3-设置窗口标题和图标

    前言 本节我们为QT Designer生成的UI界面添加图标和窗口标题. 一.实例运行 1. QT Designer设计UI 打开designer.exe,使用默认的Main Window创建,直接点 ...

  6. 力创eda 画布大小_立创EDA快速上手经验篇.docx

    立创EDA快速上手经验篇 立创EDA(海外版本叫easyeda)是近年比较流行的一款在线设计EDA(电子自动化)软件.相比早已经完成抢占市场的老牌工具,立创EDA通过"终身免费,在线方便,开 ...

  7. 付呗聚合支付快速教程 基础篇①——基本介绍和配置

    文章目录 一.对接手册 二.商户后台 三.银行分账 四.其他介绍 一.对接手册 付呗聚合支付对接手册 第一步自然是商务对接 本专栏是作为付呗的普通级商户,商户后台 使用付呗开发平台的支付API,接入到 ...

  8. 0基础python入门书籍 excel_【曾贤志】从零基础开始用Python处理Excel数据 - 第1季 基础篇...

    =====[曾贤志]从零基础开始用Python处理Excel数据 第1季 基础篇====== 1-1 什么是python? .mp4 1-2 为什么要学习用Python处理Excel表格? .mp4 ...

  9. Python 代码检查工具 pylint (快速上手)

    文章目录 安装和配置 1. 安装 2. 检查是否安装 3. 生成默认配置文件 4. 查看帮助文件 快速上手 1. 测试单个文件 2. 测试整个工程 3. 生成报告样例 4. 根据意见修改 进阶知识 1 ...

最新文章

  1. easyui datagrid checkbox的相关属性整理
  2. hadoop 文本统计一个字符的个数_使用hadoop统计多个文本中每个单词数目
  3. 【自然框架】分享 n级联动下拉列表框
  4. 蛋白质组学和代谢组学方法在生物标志物发现中的应用 Proteomic and Metabolomic Approaches to Biomarker Discovery
  5. MySQL 5.7.9多源复制报错修复
  6. 【Elasticsearch】玩转 Elasticsearch 7.8 的 SQL 功能
  7. MYSQL客户端访问服务端
  8. 微星主板黑苹果_黑苹果安装教程:准备磁盘+主板BIOS设置——墨涩网
  9. 环境安装(二):windows10下安装caffe框架(cuda10.0、cudnn7.6.4)
  10. FFmpeg —— 录制Windows桌面与麦克风,音视频同步(附源码)
  11. 主存、辅存、缓存、控存、虚存的比较分析
  12. 2018-2019-2 20175227张雪莹《Java程序设计》实验四 《Android程序设计》
  13. SpringCloud学习记录(1)-父工程与子模块创建及子模块调用
  14. 【LINUX】r,w,a,r+,w+,a+概念和区别
  15. el-form 验证规则里prop一次验证两个或多个值
  16. PTA-团体程序设计天梯赛-3
  17. R语言计算生物多样性指数
  18. nextjs移动端开发总结
  19. Cty的Linux学习笔记(十五——wget)
  20. 北美 ATT 3G退网

热门文章

  1. 【JS】教你如何在对象内任意位置插入任意属性
  2. 如果用float实现居中
  3. 现在比较流行的一种新的清除浮动的方法
  4. 初始JAVA--约定俗成的命名规则
  5. 滑动窗口法LeetCode
  6. OpenCV3学习(10.4)基于KNN的背景/前景分割算法BackgroundSubtractorKNN算法
  7. Snabbdom(虚拟dom)
  8. Modularity(模块化-CommonJS规范)
  9. PTA7、 转换函数使用 (10 分)
  10. php将已有图片缩放尺寸,PHP图片重新采样及大小缩放-imagecopyresampled用法实例