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

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()函数为私有插件隐藏函数,调用此函数来隐藏需要隐藏的插件。
此方法适用于对单独插件的隐藏,并不适合大量插件的隐藏和显示。
后续更新大量插件需要隐藏和显示的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值