qtdesigner添加菜单栏工具栏及监听事件

文章目录

  • 前言
  • 一、添加菜单栏
  • 二、添加工具栏
  • 三、动作点击事件监听


前言

学习了qtdesigner菜单栏和工具栏的有关知识,在此记录下来,方便以后参考。


一、添加菜单栏

创建Main Window的新窗体
qtdesigner添加菜单栏工具栏及监听事件_第1张图片
创建之后会默认帮你创建菜单栏
qtdesigner添加菜单栏工具栏及监听事件_第2张图片
之后双击就可以添加新的菜单项
qtdesigner添加菜单栏工具栏及监听事件_第3张图片
如上图,双击菜单子项就可以添加对应的菜单项的子项
注意,这里会有个小bug,就是你直接双击之后是输入不了中文的,要先随便输入一个数字或者字母之后,再在动作编辑器里面修改名字为中文
qtdesigner添加菜单栏工具栏及监听事件_第4张图片
qtdesigner添加菜单栏工具栏及监听事件_第5张图片
单纯的文字看起来界面过于单调,可以添加些图标使得页面更加美观(注意:只能对应动作,即上面所说的菜单子项添加图标)
双击对应动作,在图标那些选择图标文件
qtdesigner添加菜单栏工具栏及监听事件_第6张图片
之后可以看到图标已经添加上去了
qtdesigner添加菜单栏工具栏及监听事件_第7张图片

二、添加工具栏

选择窗口类,右键点击,选择添加工具栏
qtdesigner添加菜单栏工具栏及监听事件_第8张图片
如何添加工具栏里面的内容呢?其实工具栏里面放的也是动作,在动作编辑器里面选中刚刚新建的动作,然后拖到工具栏里面即可。
qtdesigner添加菜单栏工具栏及监听事件_第9张图片

三、动作点击事件监听

按照上面的方法多创建一个动作,命名如下
qtdesigner添加菜单栏工具栏及监听事件_第10张图片
保存之后输入下面命令将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_())

运行结果:
qtdesigner添加菜单栏工具栏及监听事件_第11张图片
动作点击监听函数是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_())

运行结果:
qtdesigner添加菜单栏工具栏及监听事件_第12张图片

有什么问题欢迎在评论区域留言

你可能感兴趣的:(pyqt5,python,qt5)