QToolButton和QPushButton的区别

用代码实践了一下QPushButton和QToolButton的差异

#include "widget.h"
#include 
#include 
#include 
#include 
#include 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    QVBoxLayout *layout = new QVBoxLayout(this);

    //原生按钮样式的差异
    QPushButton *pbtnt = new QPushButton("QPushbutton");
    QToolButton *tbtnt = new QToolButton;//定义的方式不同,这里不能直接给text
    tbtnt->setText("QToolButton");
    layout->addWidget(pbtnt);
    layout->addWidget(tbtnt);

    //按钮为图片的差异
    QPushButton *pbtni = new QPushButton;
    QToolButton *tbtni = new QToolButton;
    pbtni->setIcon(QIcon("D://ProgramData//icons//sun.png"));
    tbtni->setIcon(QIcon("D://ProgramData//icons//sun.png"));
    layout->addWidget(pbtni);
    layout->addWidget(tbtni);

    //ToolBUtton可与菜单栏一起使用,PushButton不能
    QToolButton *toolBtn1 = new QToolButton;
    toolBtn1->setArrowType(Qt::LeftArrow);//设置箭头形状
    toolBtn1->setAutoRaise(true);

    QToolButton *toolBtn2 = new QToolButton;
    toolBtn2->setArrowType(Qt::RightArrow);

    QToolButton *toolBtn3 = new QToolButton;
    toolBtn3->setIcon(QIcon("D://ProgramData//icons//shoucang.png"));

    QToolButton *toolBtn4 = new QToolButton;
    //与菜单栏一起使用,QPushButton没有该属性
    toolBtn4->setPopupMode(QToolButton::MenuButtonPopup);
    toolBtn4->setIcon(QIcon("D://ProgramData//icons//shezhi.png"));
    QMenu *menu = new QMenu;
    menu->addAction("剪切");
    menu->addAction("粘贴");
    menu->addAction("复制");
    toolBtn4->setMenu(menu);//设置弹出菜单

    QHBoxLayout *hlayout = new QHBoxLayout;
    hlayout->addWidget(toolBtn1);
    hlayout->addWidget(toolBtn2);
    hlayout->addWidget(toolBtn3);
    hlayout->addWidget(toolBtn4);

    layout->addLayout(hlayout);

    setLayout(layout);
}

QToolButton和QPushButton的差异:

(1)原生样式的不同

QPushButton按钮更大,QToolButton的按钮更小

(2)侧重功能不同

QToolButton可与菜单栏一起使用,QPushButton没有该属性

QToolButton和QPushButton的区别_第1张图片

你可能感兴趣的:(Qt,qt,开发语言)