QT中复合按钮中下拉菜单的实现

来源:互联网 发布:资料员要会什么软件 编辑:程序博客网 时间:2024/05/21 14:57

实现类似于Foxmail工具栏中风格的按钮,点按钮的左边区域就是一个单击事件,点右边的小三角,就出现下拉菜单。

效果如下:





在UI中选择两个QPushButton,重叠起来,如下图:


pushButton_1 放在前面,内容为“写邮件”;

pushButton_10放在后面,内容为空。

实现代码:

void MainWindow::createButton_1(){    menu_1 = new QMenu();    connect(menu_1,SIGNAL(triggered(QAction *)),this,SLOT(onMenu_1_Triggered(QAction *)));    menu_1_action_1 = new QAction(menu_1);    menu_1_action_2 = new QAction(menu_1);    menu_1->addAction(menu_1_action_1);    menu_1->addAction(menu_1_action_2);    menu_1_action_1->setText(tr("HTML邮件"));    menu_1_action_2->setText(tr("使用模板"));    menu_1->setStyleSheet("font: 12pt");    ui->pushButton_10->setMenu(menu_1);    ui->pushButton_1->setStyleSheet("background-color:transparent;font: 12pt");}void MainWindow::onMenu_1_Triggered(QAction *action){    if (action == menu_1_action_1)    {        qDebug()<<"1";    }    else if (action == menu_1_action_2)    {        qDebug()<<"2";    }}



3 0
原创粉丝点击