pyqt5 菜单栏 工具栏 qt designer 设计

本文介绍如何使用PyQt5和QtDesigner创建GUI应用程序,包括解决中文输入问题,通过两种方法实现菜单项中文显示,并演示了如何为菜单项添加触发事件。

qt designer 模板:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtChart import QChartView, QLineSeries, QChart
from chart_app_ui import *


class MyMainWindow(QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)
        self.setupUi(self)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWin = MyMainWindow()
    myWin.show()
    sys.exit(app.exec_())

在这里插入图片描述

在这里插入图片描述
输入“文件”
在这里插入图片描述
第一个子菜单,输入 中文 有点问题

方法1是 从别的地方写好,复制过来
方法2 输入一个英文,然后在 属性的 TEXT那个地方,重新输入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
添加事件 还是 手动 代码里面添加吧, qt designer 里面 现在 不会

最终代码:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtChart import QChartView, QLineSeries, QChart
from menu_ui import *


class MyMainWindow(QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)
        self.setupUi(self)

        self.actionopen.triggered.connect(self.call_back_action_open_func)
        self.actionstore.triggered.connect(self.call_back_action_store_func)

    def call_back_action_open_func(self):
        print("call_back_action_open_func")

    def call_back_action_store_func(self):
        print("call_back_action_store_func")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWin = MyMainWindow()
    myWin.show()
    sys.exit(app.exec_())

在这里插入图片描述

PyQt5 中,如果想要加载由 Qt Designer 设计好的 `.ui` 文件作为某个操作的响应结果(比如点击菜单栏中的“Save”按钮后显示一个自定义设计的保存窗口),可以按照以下步骤完成。 --- ### 具体实现流程 1. **创建 UI 文件** 使用 Qt Designer 工具制作你需要的设计界面并保存为 `save.ui` 文件。 2. **动态加载 .ui 文件** 利用 Python 提供的 `QUiLoader` 或者直接将 `.ui` 文件转换成对应的 Python 模块来加载它。 3. **关联菜单项的动作事件** 当用户点击菜单栏中的选项时,弹出自定义的窗口。这通常需要设置信号与槽机制来处理交互逻辑。 下面提供一段完整的代码示例帮助理解: ```python import sys from PyQt5.QtCore import QCoreApplication, QFile, QIODevice, QTextStream from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QVBoxLayout, QPushButton, QMenuBar, QAction from PyQt5 import uic class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() # 初始化菜单栏以及绑定动作到特定功能上 menu_bar = self.menuBar() file_menu = menu_bar.addMenu("文件") action_save = QAction('保存', self) action_save.triggered.connect(self.openCustomDialog) # 绑定至openCustomDialog方法 file_menu.addAction(action_save) self.setWindowTitle('测试 - 自定义Save对话框') def openCustomDialog(self): """ 打开我们之前使用qt designer生成的 ui 界面 """ custom_ui_file_path = './save.ui' try: dialog_widget = uic.loadUi(custom_ui_file_path) if not isinstance(dialog_widget, QWidget): raise ValueError("loaded widget is invalid") # 显示自定义对话框,并进入模态模式等待关闭后再继续程序运行流。 dialog_widget.exec_() except Exception as e: print(f"Failed to load and display the .ui form: {e}") # 主入口点 if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.resize(640, 480) window.show() sys.exit(app.exec_()) ``` --- ### 注意事项 - 需确保已安装好相关的库支持如PyQt5及其工具包(pyqt-tools), 因为此处依赖了uic模块来进行即时解析`.ui`文件内容. - 将上述脚本中的相对路径改成实际存放你的`save.ui`的位置.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值