qt按钮函数_qt界面按钮怎么关联到函数

(87) 2024-07-10 07:01:01

QT中按钮的基类QAbstractButton

  • 关于控件类的学习方法
  • 继承关系
  • 信号
  • 槽函数
  • 标题和图标
  • 按钮的 Check 属性

关于控件类的学习方法

  1. 控件类很多,API更多,但是不需要记忆
  2. 知道控件对应的类名,通过帮助文档随用随查
  3. 优先看帮助文档中控件对应的信号和槽函数
  4. 其次看帮助文档中控件对应的公共成员函数

继承关系

qt按钮函数_qt界面按钮怎么关联到函数 (https://mushiming.com/)  第1张

qt按钮函数_qt界面按钮怎么关联到函数 (https://mushiming.com/)  第2张
qt按钮函数_qt界面按钮怎么关联到函数 (https://mushiming.com/)  第3张

信号

其中最常用的是 clicked(), 通过鼠标的不同瞬间状态可以发射出pressed() 和 released() 信号, 如果鼠标设置了 check属性, 一般通过 toggled()信号判断当前按钮是选中状态还是非选中状态。

qt按钮函数_qt界面按钮怎么关联到函数 (https://mushiming.com/)  第4张

/* 当按钮被激活时(即,当鼠标光标在按钮内时按下然后释放),当键入快捷键时,或者当click()或animateClick()被调用时,这个信号被发出。值得注意的是,如果调用setDown()、setChecked()或toggle(),则不会触发此信号。 */ [signal] void QAbstractButton::clicked(bool checked = false); // 在按下按钮的时候发射这个信号 [signal] void QAbstractButton::pressed(); // 在释放这个按钮的时候发射直观信号 [signal] void QAbstractButton::released(); // 每当可检查按钮改变其状态时,就会发出此信号。checked在选中按钮时为true,在未选中按钮时为false。 [signal] void QAbstractButton::toggled(bool checked); 

槽函数

qt按钮函数_qt界面按钮怎么关联到函数 (https://mushiming.com/)  第5张

// 执行一个动画点击:按钮被立即按下,并在毫秒后释放(默认是100毫秒)。 [slot] void QAbstractButton::animateClick(int msec = 100); // 执行一次按钮点击, 相当于使用鼠标点击了按钮 [slot] void QAbstractButton::click(); // 切换可检查按钮的状态。 checked <==> unchecked [slot] void QAbstractButton::toggle(); // 参考 1.2 中的函数介绍 [slot] void QAbstractButton::setChecked(bool); // 设置按钮上图标大小 [slot]void setIconSize(const QSize &size); 

标题和图标

// 参数text的内容显示到按钮上 void QAbstractButton::setText(const QString &text); // 得到按钮上显示的文本内容, 函数的返回就是 QString QAbstractButton::text() const; // 得到按钮设置的图标 QIcon icon() const; // 给按钮设置图标 void setIcon(const QIcon &icon); // 得到按钮图标大小 QSize iconSize() const // 设置按钮图标的大小 [slot]void setIconSize(const QSize &size); 

demo
qt按钮函数_qt界面按钮怎么关联到函数 (https://mushiming.com/)  第6张

#include "mainwindow.h" #include "ui_mainwindow.h" #include "QIcon" #include "QSize" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { 
    ui->setupUi(this); this->ui->p1->setText("hello"); this->ui->p1->setIcon(QIcon("C://Users//DYF//Pictures//Camera Roll//a.png")); this->ui->p1->setIconSize(QSize(30,30)); } MainWindow::~MainWindow() { 
    delete ui; } 

qt按钮函数_qt界面按钮怎么关联到函数 (https://mushiming.com/)  第7张

按钮的 Check 属性

对应按钮来说, 一般有三种常见状态, 分别为: Normal, Hover, Pressed。

  • Normal: 普通状态, 没有和鼠标做任何接触
  • Hover: 悬停状态, 鼠标位于按钮之上, 但是并未按下
  • Pressed: 按压状态, 鼠标键在按钮上处于按下状态

默认情况下, 鼠标在按钮上按下, 按钮从 Normal 切换到 Pressed状态, 鼠标释放, 按钮从 Pressed恢复到Normal状态。
当我们给按钮设置了 check 属性之后,情况就有所不同了, 在按钮上释放鼠标键, 按钮依然会处在 Pressed状态, 再次点击按钮, 按钮才能恢复到 Normal 状态。具有check属性的按钮就相当于一个开关, 每点击一次才能实现一次状态的切换。

// 判断按钮是否设置了checkable属性, 如果设置了点击按钮, 按钮一直处于选中状态 // 默认这个属性是关闭的, not checkable bool QAbstractButton::isCheckable() const; // 设置按钮的checkable属性 // 参数为true: 点击按钮, 按钮被选中, 松开鼠标, 按钮不弹起 // 参数为false: 点击按钮, 按钮被选中, 松开鼠标, 按钮弹起 void QAbstractButton::setCheckable(bool); // 判断按钮是不是被按下的选中状态 bool QAbstractButton::isChecked() const; // 设置按钮的选中状态: true-选中, false-没选中 // 设置该属性前, 必须先进行 checkable属性的设置 void QAbstractButton::setChecked(bool); 
THE END

发表回复