QT控件提升之QPushButton提升为QMenu
2017-03-26 19:05
218 查看
当一个控件进行提升之后, 就有了新的功能, 在原来的一些特性基础上,发生一些新的改变。
QT控件提升方法:
1.需要写一个需要提升为某种功能的类。
2.打开qt设计师, 在对应需要提升的控件, 单击右键, 选择 “提升的窗口部件” , 在提升的类名和头文件输入框里, 分别填上你所写的类, 单击提升铵纽进行提升。
我这边进行了按钮提升为菜单, 部分源码如下:
//
//
QT控件提升方法:
1.需要写一个需要提升为某种功能的类。
2.打开qt设计师, 在对应需要提升的控件, 单击右键, 选择 “提升的窗口部件” , 在提升的类名和头文件输入框里, 分别填上你所写的类, 单击提升铵纽进行提升。
我这边进行了按钮提升为菜单, 部分源码如下:
//
popupbutton.cpp文件
#include "popupbutton.h"
#include <QDebug>
PopupButton::PopupButton(QWidget *parent) :
QPushButton(parent)
{
m_menu = new QMenu(this);
connect(this, SIGNAL(clicked()), this,SLOT(popupMenu()));
}
PopupButton::~PopupButton()
{
}
QMenu *PopupButton::getMenu()
{
return m_menu;
}
void PopupButton::popupMenu()
{
QPoint pos;
int y = pos.y();
pos.setY(y + this->geometry().height());
m_menu->exec(this->mapToGlobal(pos));
}
//
widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include <QMenu>
#include <QMessageBox>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
initMenuButton();
}
Widget::~Widget()
{
delete ui;
}
void Widget::initMenuButton()
{
QMenu* menu = ui->pushButton->getMenu();
QAction *nameAction = new QAction(QLatin1String("Name"), this);
QAction *ageAction = new QAction(QLatin1String("Age"), this);
menu->addAction(nameAction);
menu->addAction(ageAction);
connect(nameAction, SIGNAL(triggered()), this, SLOT(slotNameAction()));
connect(ageAction, SIGNAL(triggered()), this, SLOT(slotAgeAction()));
QMenu* childMenu = menu->addMenu(QLatin1String("child menu"));
QAction *fiveYearOldAction = new QAction(QLatin1String("5"), this);
QAction *tenTearOldAction = new QAction(QLatin1String("10"), this);
childMenu->addAction(fiveYearOldAction);
childMenu->addAction(tenTearOldAction);
}
void Widget::slotNameAction()
{
QMessageBox::information(this, QLatin1String("test"), QLatin1String("You are clicked name action!"));
}
void Widget::slotAgeAction()
{
QMessageBox::information(this, QLatin1String("test"), QLatin1String("You are clicked age action!"));
}
相关文章推荐
- QT控件提升之QPushButton提升为QMenu
- QT常用控件之QVBoxLayout,QRadioButton,QCheckBox,QMenu,QAction
- qt的qpushbutton的基本qss 用法
- Qt按钮控件(Button)
- QT QPushButton跑进度条
- 提升方式创建自己的QT控件(弹出式菜单按钮)
- QT QPushButton
- QT QPushButton 通过stylesheet 设置样式
- Qt Qpushbutton设置背景色的问题
- Qt 之 QPushButton Class
- QT笔记之QLineEdit自动补全以及控件提升
- topic4:Qt入门之常用qt控件认知之Button系列
- QT控件大全 二十一 QPush
- Qt 使用QPalette设置Qpushbutton背景色的问题
- Qt 界面使用自己定义控件 "提升为"
- QT QPushButton 通过stylesheet 设置样式
- QT QPushButton点击事件的实现
- QT 设置QPushButton 颜色
- Qt学习八:控件五:QTabWidget控件、QMenu和QToolBar控件、
- Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能