QT:Button
目录
1.QAbstractButton
autoExclusive
autoRepeat
autoRepeatDelay
autoRepeatInterval
checkable
checked
down
icon
iconSize
shortcut
text
2.QPushButton
2.1设置图标
2.2添加快捷键
3.QRadioButton
1.QAbstractButton
QPushButton类继承于QAbstractButton类,需要先了解QAbstractButton有那些成员属性。
QPushButton继承于QWidget类。
QPushButton派生了一下这些类。
QAbstractButton有以下属性
autoExclusive
这个属性控制是否排他,就是在一下选项之中只能选择一个,不能多选通常用于QRadioButton。
bool autoExclusive() const
void setAutoExclusive(bool)
autoRepeat
这个属性控制按钮是否能自动重复,在鼠标长按的情况下会以一定的间隔发射信号,默认关闭,通常用于QPushButton。
如果按钮被快捷键触发,是否能autoRepeat和autoRepeat的间隔是由系统决定的而不是这个类的属性。
bool autoRepeat() const
void setAutoRepeat(bool)
autoRepeatDelay
这个属性控制autoRepeat的开始前的延迟。
int autoRepeatDelay() const
void setAutoRepeatDelay(int)
autoRepeatInterval
这个属性控制autoRepeat的间隔。
int autoRepeatInterval() const
void setAutoRepeatInterval(int)
checkable
这个属性控制按钮是否可选,即使设置了不可选,但是点击按钮的时候还会发射信号通常用于QRadioButton。
bool isCheckable() const
void setCheckable(bool)
checked
这个属性控制当前的按钮是否被选中。
bool isChecked() const
void setChecked(bool)
down
这个属性控制按钮是否被按下,如果设置为true,clicked()和press()信号将不会被发射。
bool isDown() const
void setDown(bool)
icon
这个属性控制按钮的图标。
QIcon icon() const
void setIcon(const QIcon &icon)
这个通常使用pixmap访问qrc中的图片文件,再使用pixmap构建一个Qicon对象。
iconSize
这个属性控制图标的大小。
QSize iconSize() const
void setIconSize(const QSize &size)
QSize这个类表示一个二维对象的大小。QSize(int width, int height)
shortcut
这个属性控制按钮的快捷键。
QKeySequence shortcut() const
void setShortcut(const QKeySequence &key)
QKeySequence这个类封装了一个键盘序列作为快捷键。QKeySequence(Qt::CTRL + Qt::Key_P);,将这个对象传到setShortcut()中 ctrl + p 就可以触发这个按钮。
text
这属性控制按钮的文本。
QString text() const
void setText(const QString &text)
2.QPushButton
QPushbutton常用的属性都在QAbstractButton中。
2.1设置图标
qrc如何使用已经再上一篇介绍过了。
QPixmap img(":/images/chicken"); img = img.scaled(ui->pushButton_Target->geometry().height(), ui->pushButton_Target->geometry().width()); ui->pushButton_Target->setIcon(QIcon(img));
2.2添加快捷键
ui->pushButton_up->setShortcut(QKeySequence(Qt::Key_W)); ui->pushButton_down->setShortcut(QKeySequence(Qt::Key_S)); ui->pushButton_left->setShortcut(QKeySequence(Qt::Key_A)); ui->pushButton_right->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D));
3.QRadioButton
单选按钮
这个类压根没有属于自己的成员属性,全是继承于QAbstractButton中的。
如果在一个控件内想要有多个 QRadioButton的选项,可以使用QGroup进行分组来实现。
QButtonGroup * group1 = new QButtonGroup(this);// 创建一个button组 group1->addButton(ui->radioButton); //向组中添加按钮