Qt:19---Buttons控件的使用_下拉菜单

一、Push  Button

  • 名词:​按钮


常用函数

//得到/设置按钮在程序界面中显示的位置和大小
const QRect &geometry() const

void setGeometry(int x, int y, int w, int h)

void setGeometry(const QRect &)
//获得/设置按钮显示的字体/样式
const QFont &font() const

void setFont(const QFont &)


二、Tool  Button

  • 名词:​工具按钮

Qt:19---Buttons控件的使用_ui界面_02Qt:19---Buttons控件的使用_ui界面_03


Tool Button设置下拉菜单

  • 方式一:用以下的函数创建

setPopupMode


设置ToolButton弹出菜单的模式

  • QToolButton::InstantPopup:ToolButton右下角显示一个小箭头,点击小箭头显示菜单
  • QToolButton::MenuButtonPopup:ToolButton右侧有一个向下的小箭头,点击小箭头显示菜单

上面方式的不同:InstantPopup即使为这个ToolButton关联了Action也不会Action的功能


setToolButtonStyle

设置按钮样式

setMenu

为ToolButton设置下拉菜单对象

Qt:19---Buttons控件的使用_ico_04

//tBtnSelectItem为ToolButton,是ui界面下添加好的
void MainWindow::createSelectionPopMenu()
{
QMenu *menuSelection=new QMenu(this);//新建一个菜单
menuSelection->addAction(ui->actSelAll);//为菜单添加Action
menuSelection->addAction(ui->actSelNone);
menuSelection->addAction(ui->actSelInvs);

ui->tBtnSelectItem->setPopupMode(QToolButton::MenuButtonPopup);//设置菜单弹出模式
ui->tBtnSelectItem->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);//设置按钮格式
ui->tBtnSelectItem->setDefaultAction(ui->actSelPopMenu);//关联Action
ui->tBtnSelectItem->setMenu(menuSelection);//设置下拉菜单

QToolButton *aBtn=new QToolButton(this);//新建一个ToolButton放置到主工具栏中
aBtn->setPopupMode(QToolButton::InstantPopup);
aBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
aBtn->setDefaultAction(ui->actSelPopMenu);
aBtn->setMenu(menuSelection);
ui->mainToolBar->addWidget(aBtn);//将ToolButton放置在主工具栏上
}

  • 方式二:​ui界面下设置下面的属性

Qt:19---Buttons控件的使用_ui界面_05



 Tool Button配合Action的使用

Qt:19---Buttons控件的使用_ui界面_06

Qt:19---Buttons控件的使用_ico_07

  • 演示案例

先设置一些Action对象

Qt:19---Buttons控件的使用_ico_08

Qt:19---Buttons控件的使用_下拉菜单_09

  • 然后定义一个私有函数,将ToolButton与上面这些Action相关联(此函数使用时需要放置到构造函数中)

void MainWindow::setActionForButton()
{
ui->tBtnListIni->setDefaultAction(ui->actListIni);
ui->tBtnListClear->setDefaultAction(ui->actListClear);
ui->tBtnListInsert->setDefaultAction(ui->actListInsert);
ui->tBtnListAppend->setDefaultAction(ui->actListAppend);
ui->tBtnListDelete->setDefaultAction(ui->actListDelete);

ui->tBtnSelALL->setDefaultAction(ui->actSelAll);
ui->tBtnSelNone->setDefaultAction(ui->actSelNone);
ui->tBtnSelInvs->setDefaultAction(ui->actSelInvs);
}


三、Check Box

  • 名词:​复选框

Qt:19---Buttons控件的使用_ui界面_10Qt:19---Buttons控件的使用_ui界面_11

bool isChecked() const;  //设置返回Check Box是否被选中
void setChecked(bool); //设置Check Box是否为选中状态

四、Radio Button

  • 名词:​单选按钮

Qt:19---Buttons控件的使用_ico_12

五、Command Link Button

  • 名词:​命令链接按钮

Qt:19---Buttons控件的使用_ui界面_13

六、Dialog Button Box

  • 名词:​按钮盒

Qt:19---Buttons控件的使用_ico_14