.h
#ifndef FLOWMETERCONFIG_H
#define FLOWMETERCONFIG_H
#include <QMainWindow>
#include <QPushButton>
#include <QMenu>
namespace Ui {
class FlowmeterConfig;
}
class FlowmeterConfig : public QMainWindow
{
Q_OBJECT
public:
explicit FlowmeterConfig(QWidget *parent = 0);
~FlowmeterConfig();
private:
Ui::FlowmeterConfig *ui;
QPushButton *btn_show;
QPushButton *btn_demar;
// 创建显示按钮的下拉按钮
void create_clickButton_show();
// 创建标定按钮的下拉按钮
void create_clickButton_demar();
// 显示
QAction *menu_1; // 显示按钮
QAction *menu_2; // 多仪表显示
// 标定
QAction *menu_3; // 标定
QAction *menu_4; // 多表标定
public slots:
// 显示
void onMenu_1_Triggered(QAction *action);
// 标定
void onMenu_2_Triggered(QAction *action);
};
#endif // FLOWMETERCONFIG_H
.cpp
#include "flowmeterconfig.h"
#include "ui_flowmeterconfig.h"
#include <QPushButton>
#include <QToolBar>
#include <QDebug>
#include <QMouseEvent>
FlowmeterConfig::FlowmeterConfig(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::FlowmeterConfig)
{
ui->setupUi(this);
// 创建工具栏
QToolBar *toolBar = new QToolBar(this);
// 将工具栏添加到视图上
addToolBar(Qt::TopToolBarArea, toolBar);
// 只允许上停靠
toolBar->setAllowedAreas(Qt::TopToolBarArea);
// 设置浮动操作
toolBar->setFloatable(false);
// 设置移动 (相当于总开关)
toolBar->setMovable(false);
QPushButton *btn_com = new QPushButton("通讯", this);
toolBar->addWidget(btn_com);
btn_show = new QPushButton("显示", this);
toolBar->addWidget(btn_show); // 将按钮添加到界面
create_clickButton_show(); // 创建显示按钮的下拉按钮
QPushButton * btn_config = new QPushButton("配置", this);
toolBar->addWidget(btn_config);
btn_demar = new QPushButton("标定", this);
toolBar->addWidget(btn_demar);
create_clickButton_demar(); // 创建标定按钮的下拉按钮
QPushButton * btn_help = new QPushButton("帮助", this);
toolBar->addWidget(btn_help);
}
FlowmeterConfig::~FlowmeterConfig()
{
delete ui;
}
// 创建显示按钮的下拉按钮
void FlowmeterConfig::create_clickButton_show()
{
QMenu * menu = new QMenu(this);
connect(menu,SIGNAL(triggered(QAction *)),this,SLOT(onMenu_1_Triggered(QAction *)));
menu_1 = new QAction(btn_show);
menu_2 = new QAction(btn_show);
menu->addAction(menu_1);
menu->addAction(menu_2);
menu_1->setText(tr("显示数据"));
menu_2->setText(tr("多仪表显示"));
btn_show->setMenu(menu);
}
// 判断点击了哪个按钮
void FlowmeterConfig::onMenu_1_Triggered(QAction *action)
{
if (action == menu_1)
{
qDebug()<<"1";
}
else if (action == menu_2)
{
qDebug()<<"2";
}
}
// 创建标定按钮的下拉按钮
void FlowmeterConfig::create_clickButton_demar()
{
QMenu * menu = new QMenu(this);
connect(menu,SIGNAL(triggered(QAction *)),this,SLOT(onMenu_2_Triggered(QAction *)));
menu_3 = new QAction(btn_show);
menu_4 = new QAction(btn_show);
menu->addAction(menu_3);
menu->addAction(menu_4);
menu_3->setText(tr("标定"));
menu_4->setText(tr("多表标定"));
btn_demar->setMenu(menu);
}
// 判断点击了哪个按钮
void FlowmeterConfig::onMenu_2_Triggered(QAction *action)
{
if (action == menu_3)
{
qDebug()<<"3";
}
else if (action == menu_4)
{
qDebug()<<"4";
}
}
在其他地方设置下拉框