工具按钮 QToolButton
工具按钮常常用来显示图标,然后添加到工具栏中
常用属性和方法
文本
设置和获取文本
//设置和获取文本
QString text() const
void setText(const QString &text)
图片
设置和获取图片
//设置和获取图片
QIcon icon() const
void setIcon(const QIcon &icon)
获取和设置图片尺寸
//设置和获取图片尺寸
QSize iconSize() const
void setIconSize(const QSize &size)
按钮风格
设置和获取工具按钮的风格
Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle style)
style有4种取值:
- Qt::ToolButtonIconOnly,只显示图片,
- Qt::ToolButtonTextOnly,只显示文本,
- Qt::ToolButtonTextBesideIcon,文本在图片的右侧,
- Qt::ToolButtonTextUnderIcon,文本在图片的下面,
- Qt::ToolButtonFollowStyle,跟随系统样式
箭头类型
可以设置箭头,注意:设置箭头后,设置的图标也就不会再显示了,被箭头代替
//获取和设置箭头的类型
Qt::ArrowType arrowType() const
void setArrowType(Qt::ArrowType type)
type有4种取值:
- Qt::NoArrow,没有箭头
- Qt::UpArrow,上箭头,
- Qt::DownArrow,下箭头,
- Qt::LeftArrow,左箭头,
- Qt::RightArrow,右箭头,
自动凸出
就是鼠标悬浮时,有一个凸出的效果(该方法还会使得按钮的边框消失)
//设置和获取自动凸出
bool autoRaise() const
void setAutoRaise(bool enable)
获取和设置按钮关联的菜单(按钮都有的方法)
//获取和设置按钮关联的菜单
QMenu *QToolButton::menu() const
void QToolButton::setMenu(QMenu *menu)
菜单弹出模式
//获取和设置菜单的弹出模式
QToolButton::ToolButtonPopupMode popupMode() const
void setPopupMode(QToolButton::ToolButtonPopupMode mode)
mode有三个取值
- QToolButton::DelayedPopup ,长按按钮一小会儿后才会弹出菜单,(注意右下角多了1个小三角)
- QToolButton::MenuButtonPopup,会出现1个小三角,点击小三角立即弹出菜单
- QToolButton::InstantPopup,点击按钮立即弹出
举例
使用ToolButton来填充工具栏
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QToolButton>
#include<QMenu>
#include<QToolBar>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr) : QWidget(parent){resize(500,500);QMenu* menu=new QMenu(this);QAction* a1=new QAction("1号",this);QAction* a2=new QAction("2号",this);QAction* a3=new QAction("3号",this);menu->addAction(a1);menu->addAction(a2);menu->addAction(a3);QToolBar* tool_bar=new QToolBar(this);//1号按钮QToolButton* tool_btn1=new QToolButton(this);tool_btn1->setIcon(QIcon(":/11.png"));tool_btn1->setIconSize(QSize(30,30));//只显示图标tool_btn1->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);tool_btn1->setAutoRaise(true);//设置悬浮提示tool_btn1->setToolTip("相册");tool_bar->addWidget(tool_btn1);//2号按钮QToolButton* tool_btn2=new QToolButton(this);tool_btn2->setIcon(QIcon(":/22.png"));tool_btn2->setIconSize(QSize(30,30));//只显示图标tool_btn2->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);tool_btn2->setAutoRaise(true);//设置悬浮提示tool_btn2->setToolTip("消息");tool_btn2->setMenu(menu);//按小箭头立即弹出菜单tool_btn2->setPopupMode(QToolButton::MenuButtonPopup);tool_bar->addWidget(tool_btn2);//3号按钮QToolButton* tool_btn3=new QToolButton(this);tool_btn3->setIcon(QIcon(":/33.png"));tool_btn3->setIconSize(QSize(30,30));//只显示图标tool_btn3->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonIconOnly);tool_btn3->setAutoRaise(true);//设置悬浮提示tool_btn3->setToolTip("摄影");tool_btn3->setMenu(menu);//按小箭头立即弹出菜单tool_btn3->setPopupMode(QToolButton::MenuButtonPopup);tool_bar->addWidget(tool_btn3);}~Widget()=default;
};
#endif // WIDGET_H
学习链接:https://github.com/0voice