QT控件认识
QT控件认识
学习控件需要培养起来查帮助文档的习惯
首先我们查父类,按照以下顺序
信号->槽函数->public function->others
按钮

QAbstractButton
- 槽函数 
- 信号 
QPushButton
- 普通的按钮,继承于QAstrctButton 
- 下面是具体的用法 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33- qtTest_control::qtTest_control(QWidget *parent)
 : QMainWindow(parent)
 {
 ui.setupUi(this);
 
 //普通按钮
 ui.nomalBtu->setText("屌丝");
 ui.nomalBtu->setIcon(QIcon(":/1"));
 
 
 
 //check按钮
 ui.checkBtn->setCheckable(true);//设置成可选中的状态,也就是颜色会加深
 ui.checkBtn->setText("屌丝二号");
 ui.checkBtn->setIcon(QIcon(":/2"));
 
 connect(ui.checkBtn, &QPushButton::toggled, this, [=]() {
 QMessageBox::information(this, "check","你是大屌丝二号");
 
 });//当点击的是子图标,发出信号
 
 
 //关联按钮
 QMenu* menuForwithMenu = new QMenu(nullptr);
 QAction* act1=menuForwithMenu->addAction(QIcon("://3"), "选项一");
 ui.withMenu->setMenu(menuForwithMenu);
 connect(act1, &QAction::triggered, this, [=]() {
 QMessageBox::information(this, "选项", "这个是选项一");
 });
 
 
 
 }
QToolButton
- 加强版的QPushButton,并且做的更漂亮 
- 设置图标的方式 
- 下面是一些具体的做法 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27- //toolButton 图片
 QAction* atc2 = new QAction(QIcon(":/4"),"图片按钮");
 ui.pictureToolBtn->setDefaultAction(atc2);
 connect(atc2, &QAction::triggered, this, [=]() {
 atc2->setIcon(QIcon(":/5"));
 atc2->setText("新的图片");
 });
 ui.pictureToolBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
 
 
 //toolButton 箭头
 ui.arrowBtn->setArrowType(Qt::UpArrow);
 ui.arrowBtn->setText("向上");
 ui.arrowBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
 
 connect(ui.arrowBtn, &QToolButton::clicked, this, [=]() {
 if (ui.arrowBtn->arrowType() == Qt::UpArrow) {
 ui.arrowBtn->setArrowType(Qt::DownArrow);
 ui.arrowBtn->setText("向下");
 ui.arrowBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
 }
 else {
 ui.arrowBtn->setArrowType(Qt::UpArrow);
 ui.arrowBtn->setText("向上");
 ui.arrowBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
 }
 });- 由于这个button和pushButton的效果都差不多,就只描述了不一样的一些东西 - 下面是他们的样子  
- 弹出菜单的形式以及clicked信号的捕捉 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25- // toolButton 弹出菜单
 ui.menuToolBtn->setMenu(menuForwithMenu);
 /*
 弹出菜单的弹出模式是一个枚举类型: QToolButton::ToolButtonPopupMode, 取值如下:
 - QToolButton::DelayedPopup:
 - 延时弹出, 按压工具按钮一段时间后才能弹出, 比如:浏览器的返回按钮
 - 长按按钮菜单弹出, 但是按钮的 clicked 信号不会被发射
 - QToolButton::MenuButtonPopup:
 - 在这种模式下,工具按钮会显示一个特殊的箭头,表示有菜单。
 - 当按下按钮的箭头部分时,将显示菜单。按下按钮部分发射 clicked 信号
 - QToolButton::InstantPopup:
 - 当按下工具按钮时,菜单立即显示出来。
 - 在这种模式下,按钮本身的动作不会被触发(不会发射clicked信号
 */
 //检测什么时候有信号
 ui.menuToolBtn->setPopupMode(QToolButton::InstantPopup);
 connect(ui.menuToolBtn, &QToolButton::clicked, this, [=]() {
 QMessageBox::information(this, "成功", "检查到信号");
 });
 
 //检查结果,默认的延迟菜单,当点击的时候有信号但是我们长安的时候没有信号(QToolButton::DelayedPopup:)
 // 当带有箭头的按钮的时候,点击非按钮区有信号,点击箭头没有信号( - QToolButton::MenuButtonPopup:)
 // 无论什么形式的点击都不会有信号(QToolButton::InstantPopup:)
 //
 
QRadioButton
这个按钮是一个单选按钮,没有自己的信号,槽函数,和公共函数,所有的东西都是继承于QAbstractButton,主要是用于按钮组当中
对于单选按钮的分组,通常将按钮放置于不同的容器当中,每个容器当中的按钮就是一组

通常使用下面这个容器,因为可以提供标题

QCheckBox
复选框按钮,也就是支持多选
对于单选按钮来说,QCheckBox支持选中后取消选中
QT控件认识
      https://tsy244.github.io/2023/08/03/QT/QT控件认识/