Qt | 按钮控件的使用 QToolButton

579 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

前言:

工具按钮控件提供了用于命令或选项的快捷访问按钮。工具按钮和普通的命令按钮不同,它通常显示图标,而不显示文本,通常用在QToolBar(工具栏)里。

工具按钮由QToolButton类来实现。通过使用QToolBar::addAction()函数在工具栏中添加一个QAction时,通常会创建一个工具按钮。

QToolButton支持自动浮起,在自动浮起模式中,只有在鼠标指向它的时候才会绘制三维边框,当按钮被用于QToolBar中时,这个特性会被自动启用,可以调用setAutoRaise()函数来改变这个特性。

工具按钮的使用:

  • setToolButtonStyle()和setIconSize():设置工具按钮的外观和尺寸。
  • setMenu():可以设置工具按钮提供一个弹出菜单。
  • setPopupMode():可以设置菜单的弹出模式,默认模式是DelayedPopupMode,在按下一段时间后,会弹出一个菜单列表,默认延迟600毫秒。
  • setPopupDelay():设置延迟时间。
  • setArrowType():设置按钮是否显示一个箭头,而不是一个正常的图标。

弹出模式的分类:

  • QToolButton::DelayedPopup:按下按钮一定时间后,显示菜单。
  • QToolButton::MenuButtonPopup:在这种模式下,工具按钮会显示一个特殊的箭头,以指示菜单是否存在,按下按钮的箭头部分时显示菜单。
  • QToolButton::InstantPopup:按下工具时菜单显示出来,无延迟。这种模式下,按钮自身的操作不会触发。

setToolButtonStyle()函数可以设置按钮风格,比如只显示一个图标、只显示文本或文本位于图标旁边、下方。参数为要设置的风格,默认值是Qt::ToolButtonIconOnly。

按钮风格的分类:

  • Qt::ToolButtonIconOnly:只显示图标。
  • Qt::ToolButtonTextOnly:只显示文本。
  • Qt::ToolButtonTextBesideIcon:文本显示在图标旁边。
  • Qt::ToolButtonTextUnderIcon:文本显示在图标下边。
  • Qt::ToolButtonFollowStyle:遵循QStyle::StyleHint。

setArrowType()函数的参数为箭头的类型,默认类型是下。

箭头的类型:

  • Qt::NoArror:不设置箭头。
  • Qt::UpArrow:上箭头。
  • Qt::DownArrow:下箭头。
  • Qt::LeftArro:左箭头。

工具按钮的使用:

//动态创建一个工具按钮
QToolButton *pBtn = new QToolButton(this);
//设置箭头类型为左按钮
pBtn->setArrowType(Qt::LeftArrow);
//设置按钮显示的文本为测试按钮
pBtn->setText(QString::fromLocal8Bit("测试按钮"));
//设置文本显示在图标下边
PBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
//连接按钮的点击事件到槽函数onPbtnClicked()
connect(pBtn, SIGNAL(clicked()), this, SLOT(onPbtnClicked()));