.h
#ifndef FLOWMETERCONFIG_H#define FLOWMETERCONFIG_H#include <QMainWindow>#include <QPushButton>#include <QMenu>namespace Ui {class FlowmeterConfig;}class FlowmeterConfig : public QMainWindow{Q_OBJECTpublic: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";}}
在其他地方设置下拉框
