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