学习了qtdesigner菜单栏和工具栏的有关知识,在此记录下来,方便以后参考。
创建Main Window的新窗体
创建之后会默认帮你创建菜单栏
之后双击就可以添加新的菜单项
如上图,双击菜单子项就可以添加对应的菜单项的子项
注意,这里会有个小bug,就是你直接双击之后是输入不了中文的,要先随便输入一个数字或者字母之后,再在动作编辑器里面修改名字为中文
单纯的文字看起来界面过于单调,可以添加些图标使得页面更加美观(注意:只能对应动作,即上面所说的菜单子项添加图标)
双击对应动作,在图标那些选择图标文件
之后可以看到图标已经添加上去了
选择窗口类,右键点击,选择添加工具栏
如何添加工具栏里面的内容呢?其实工具栏里面放的也是动作,在动作编辑器里面选中刚刚新建的动作,然后拖到工具栏里面即可。
按照上面的方法多创建一个动作,命名如下
保存之后输入下面命令将ui文件转换成py文件(ui文件命名为tool_demo):
pyuic5 -o tool_demo_ui.py tool_demo.ui
注意,转换的代码不能直接运行,需要创建一个py文件去读取界面代码并且展示,代码如下
tool_demo.py
from PyQt5.QtWidgets import QMainWindow, QApplication
import sys
from tool_demo_ui import Ui_MainWindow
class MainWin(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_win = MainWin()
main_win.show()
sys.exit(app.exec_())
运行结果:
动作点击监听函数是triggered,这里设置功能:点击对应动作弹出对应弹窗。
注意:因为菜单栏和工具栏都是同一个动作,所以写一个监听函数就好了
代码修改如下:
tool_demo.py
from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox
import sys
from tool_demo_ui import Ui_MainWindow
class MainWin(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
# 调用监听函数
self.controller()
# 监听事件都放在这里面
def controller(self):
self.network_action.triggered.connect(self.network)
self.version_action.triggered.connect(self.version)
# 网路动作按钮点击事件
def network(self):
QMessageBox.about(self, '网络', '点击了网络动作')
# 版本动作按钮店址事件
def version(self):
QMessageBox.about(self, '版本', '点击了版本动作')
if __name__ == '__main__':
app = QApplication(sys.argv)
main_win = MainWin()
main_win.show()
sys.exit(app.exec_())
运行结果:
有什么问题欢迎在评论区域留言
文章浏览阅读1w次。开源埋点工具分析查找和比较_开源埋点系统
文章浏览阅读63次。答:选择To check syntax, find problems, and enforce code style(检查语法、发现问题并强制执行代码风格)1.在vue3中,规则vue/name-property--casing已经被vue/component-definition-name-casing代替,在使用前者会出错。a).安装postcss和postcss-preset-env插件:npm install postcss postcss-preset-env -D。(你想遵循哪一种风格指南?
文章浏览阅读1.4w次,点赞6次,收藏11次。使用IDM下载百度云盘文件提示“此站点/路径要求授权”解决方法问题描述解决方法问题描述利用IDM下载百度云盘文件时,未下载完成时提示“此站点/路径要求授权”,要求输入账户和密码,然而输入啥都没用。解决方法停止下载,右键下载项目——属性,可以发现下载的URL改变了。所以要把URL改回来。在浏览器再次下载文件,IDM会弹出“下载文件信息”将图中的URL信息放到之前下载项目右键——属性的..._idm此站点路径要求授权
文章浏览阅读595次,点赞7次,收藏6次。_idea将todo添加到侧边栏
文章浏览阅读208次。【IT168报道】为适应网络强国和数字中国的发展战略,奠定互联网+发展的网络基础,满足垂直行业对网络的多样化需求,迎接万物互联的网络新时代,传统网络向开放化、软件化、智能化的新一代信息网络演进成为产业界的广泛共识。国内三大运..._sdn2018中国
文章浏览阅读1.1k次,点赞18次,收藏26次。校园点餐系统小程序采用B/S模式、采用JAVA语言、springboot框架、mysql数据库、小程序框架uniapp等开工具,促进了校园点餐系统小程序的业务发展。与传统线下点餐相比,校园点餐系统小程序不但节省了卖家的线下运营的成本和门店曝光等难题,对学生而言提供了足不出户送餐上门的服务,针对现代校园而言,出门用餐路程远,排队麻烦等问题,特开发校园点餐系统小程序。本系统使用动态网页开发技术JSP,Java作为系统的开发语言,采用springboot框架、mysql作为后台数据库。_微信点餐小程序源代码
文章浏览阅读1k次。前言接下来就是数据结构的第二大板块:树之前的第一板块:线性表中的顺序表和链表已经更完。但由于队列和栈是特殊的线性表,既然特殊,实际上就普通的顺序表和链表也能实现,加上队列和栈可直接STL实现。故由此,先暂时跳过队列和栈的实现(实际上队列和栈的实现也是仿STL的)笔记(1)为顺序表仿STL的实现,笔记(2)为链表的实现,笔记(3)为队列的仿STL实现,笔记(4)为栈的仿STL实现,而本篇笔记(5)则介绍树形结构树的定义树是一种数据结构,它是由n(n≥0)个有限节点组成一个具有层次关系_三叉树
文章浏览阅读54次。struts简介Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。Struts发展历史Struts是作为ApacheJakarta项目的组成部分,...
文章浏览阅读391次。Javaweb分页技术实现分页技术就是通过SQL语句(如下)来获取数据,具体实现看下面代码//分页查询语句select * from 表名 where limit page , count;和//获取表中的总数据,确定页数select count(*) from 表名;不说废话直接上代码前端代码:<!DOCTYPE html>..._javaweb之分页查询 post请求写
文章浏览阅读2.7k次。稳定性范畴, 参考5.x kernel。kernel OopsOops指的就是内核的不正确行为,比如对驱动来说:static int i82092aa_pci_probe(struct pci_dev *dev,const struct pci_device_id *id){unsigned char configbyte;int i, ret;ret = pci_enable_device(de..._kernel warn
文章浏览阅读266次。_forward 和 redirect 区别?
文章浏览阅读5.6k次,点赞3次,收藏7次。前几天我发了个cad三维线模导入Tekla快速建模的文章,有不少朋友让我做个具体的操作视频教程,说实在的,我这把年纪你让我录个视频教程,还要语音的,那真是要我老命了,普通话都讲不好,想来想去还是做个图文教程吧。言归正传首先要快速导入之前,需要下载两个小插件(都是完全免费的)1、SSBIM for CAD下载地址及安装方法:http://zt.ggditu.com/Proscenium/w..._cad三维建模导图插件