我是靠谱客的博主 朴实板凳,最近开发中收集的这篇文章主要介绍QT控件提升之QPushButton提升为QMenu,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

当一个控件进行提升之后, 就有了新的功能, 在原来的一些特性基础上,发生一些新的改变。

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!"));
}
 

 

 

转:https://blog.csdn.net/u012803067/article/details/66478074

最后

以上就是朴实板凳为你收集整理的QT控件提升之QPushButton提升为QMenu的全部内容,希望文章能够帮你解决QT控件提升之QPushButton提升为QMenu所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部