VS+QT开发之添加Action(菜单栏动作)

本文详细指导VS2022中使用QT开发菜单栏,实现不同选项触发不同界面展示,并演示如何添加动作、设置槽连接和编写针对COM/NET切换的隐藏/显示功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VS+QT开发之添加Action(菜单栏动作)

简介

本文章讲解如何在VS2022中开发QT界面的菜单栏。通过选中菜单栏显示不同的界面。
先上界面!!!
图一:启动时界面
在这里插入图片描述
图二:菜单栏选项
在这里插入图片描述
图三:选中COM后界面
在这里插入图片描述
图四:再次选中NET选项
在这里插入图片描述

如何快速添加动作

打开UI文件,在图示位置输入菜单栏名称后回车,进入下一级的输入。
在这里插入图片描述
分别输入菜单栏中的功能名称。此时在对象检查器中自动添加了相对应的动作对象。
在这里插入图片描述

为动作添加槽连接(响应相应的动作函数)

找到信号/槽 编辑器,点击"+"号。发送者选择动作产生的对象(actionCOM/actionNET)。信号选择tiggered()(PS:QT中点击动作会触发tiggered信号)。接收者选择要将信号发送到哪个类里。这里是主界面所在的类(QtWidgetsApplication1Class)。槽信号选择相对应的槽信号(PS:一般是新创建一个槽函数)。
创建槽函数可以参考这篇文章:https://blog.csdn.net/MelyLenient/article/details/123907803
(根据文章创建槽函数后,在第④步不选择确定就可以在动作编辑里找到新添加的槽函数了)
在这里插入图片描述

编写槽函数

两个不同的动作点击时,有不同的相应,在本文章中,涉及对插件的隐藏和显示操作。
代码如下:
h文件

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_QtWidgetsApplication1.h"

class QtWidgetsApplication1 : public QMainWindow
{
    Q_OBJECT

public:
    QtWidgetsApplication1(QWidget *parent = Q_NULLPTR);

private:
    Ui::QtWidgetsApplication1Class ui;

    void p_hideControl();
private slots:
    void actionCOMBeSelected();
    void actionNETBeSelected();
};

Cpp文件

#include "QtWidgetsApplication1.h"

QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    p_hideControl();
}

void QtWidgetsApplication1::p_hideControl()
{
    ui.comboBox->setVisible(false);
    ui.selectText->setVisible(false);
    ui.ipAddrInput->setVisible(false);
}
void QtWidgetsApplication1::actionCOMBeSelected()
{
    p_hideControl();
    ui.selectText->setText("COM:");
    ui.comboBox->setVisible(true);
    ui.selectText->setVisible(true);
}
void QtWidgetsApplication1::actionNETBeSelected()
{
    p_hideControl();
    ui.selectText->setText("NET:");
    ui.selectText->setVisible(true);
    ui.ipAddrInput->setVisible(true);
}

其中p_hideControl()函数为私有插件隐藏函数,调用此函数来隐藏需要隐藏的插件。
此方法适用于对单独插件的隐藏,并不适合大量插件的隐藏和显示。
后续更新大量插件需要隐藏和显示的方法。

Qt Designer中添加菜单栏是一个相对简单的过程。以下是具体步骤: 1. **打开Qt Designer**:首先,打开Qt Designer软件。 2. **创建新窗体**:选择“主窗口”模板,创建一个新的主窗口应用程序。 3. **添加菜单栏**: - 在左侧的“Widget Box”中,找到“Menu Bar”组件。 - 将“Menu Bar”组件拖放到主窗口的顶部。 4. **编辑菜单项**: - 点击菜单栏上的“Type Here”文本,添加主菜单项,例如“文件”、“编辑”、“视图”等。 - 在每个主菜单项下,可以继续添加子菜单项。例如,在“文件”菜单下,可以添加“新建”、“打开”、“保存”等。 5. **添加动作Actions)**: - 在右侧的“动作编辑器”中,点击“新建动作”按钮,创建一个新的动作。 - 设置动作的文本、图标、快捷键等属性。 - 将动作拖放到相应的菜单项上。 6. **连接信号与槽**: - 选中一个菜单项,点击右键,选择“转到槽”。 - 在弹出的对话框中,选择适当的信号(例如“triggered”),点击“确定”。 - 在生成的槽函数中,编写相应的代码来处理菜单项的点击事件。 通过以上步骤,你就可以在Qt Designer中成功添加一个菜单栏,并为其添加各种菜单项和动作。以下是一个简单的示例代码,展示了如何在槽函数中处理菜单项的点击事件: ```python from PyQt5 import QtWidgets, uic class MainWindow(QtWidgets.QMainWindow): def __init__(self): super(MainWindow, self).__init__() uic.loadUi('mainwindow.ui', self) # 连接菜单项的触发信号到相应的槽函数 self.action_new.triggered.connect(self.new_file) self.action_open.triggered.connect(self.open_file) self.action_save.triggered.connect(self.save_file) def new_file(self): # 处理“新建”菜单项的点击事件 print("新建文件") def open_file(self): # 处理“打开”菜单项的点击事件 print("打开文件") def save_file(self): # 处理“保存”菜单项的点击事件 print("保存文件") if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值