学习了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_())
有什么问题欢迎在评论区域留言