?2.3 以LineEdit为例子设置字体,颜色,布局格式的变化
普通按钮(QPushButton)
工具按钮(QToolButton)
单选按钮(QRadioButton)
复选框(QCheckBox)
共同属于QAbstractButton类
?????????????????????????????????
属性 | 属性值类型 | 功能 |
text | QString | 按钮显示的文字 |
icon | QIcon | 按钮的图标 |
shortcut | QKeySequence | 按钮的快捷键 |
checkable | bool | 按钮是否可复选 |
checked | bool | 按钮是否复选状态 |
autoExclusive | bool | 在一个布局或容器组件内的同类按钮是否是互斥的。 |
autoRepeat | bool | cliced()、pressed()、released()信号。初次重复的延迟时间由属性autoRepeatDelay决定,重复的周期由属性autoRepeatInterval决定,时间单位都是毫秒。 |
autoDefault | bool | 按钮是否为自动默认按钮 |
default | bool | 按钮是否为默认按钮 |
flat | bool | flat = true 时,按钮没有边框,只有被电击或复选时才显示按钮边框。 |
????????QCheckBox增加的tristate属性,表示是否有三种复选状态,即Checked、Unchecked和PartiallyChecked。可以用QAbstractButton定义的函数isChecked()和setChecked()读取和设置复选状态,也可以用QCheckBox中定义的checkState()和setCheckState()读取和设置复选状态。
QAbstractButton类定义了如下信号:
void clicked(bool checked = false)? ? ? ? //点击按钮时
void pressed()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//按下Space键或鼠标左键时
void released()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //释放Space键或鼠标左键时??
void toggled(bool checked)? ? ? ? ? ? ? ? ? ?//按钮的checked属性值变化时? ? ?
?QCheck定义的新信号
void QCheckBox::stateChanged(int state)
//当复选框的复选按钮状态变化时,组件发射此信号。如果复选框的tristate属性设置为false,也就是只有两种状态时,stateChanged()信号和toggled()信号作用一样。
例子来自《Qt6 C++开发指南》 samp4_05。
可观看下面链接加深理解。
void Widget::on_pushButton_clicked()
{
//居左
ui->lineEdit->setAlignment(Qt::AlignLeft);
}
void Widget::on_pushButton_2_clicked()
{
//居中
ui->lineEdit->setAlignment(Qt::AlignCenter);
}
void Widget::on_pushButton_3_clicked()
{
//居右
ui->lineEdit->setAlignment(Qt::AlignRight);
}
void Widget::on_pushButton_4_clicked(bool checked)
{
//粗体
QFont font = ui->lineEdit->font();
font.setBold(checked);
ui->lineEdit->setFont(font);
}
void Widget::on_pushButton_5_clicked(bool checked)
{
//斜体
QFont font = ui->lineEdit->font();
font.setItalic(checked);
ui->lineEdit->setFont(font);
}
void Widget::on_pushButton_6_clicked(bool checked)
{
//下划线
QFont font = ui->lineEdit->font();
font.setUnderline(checked);
ui->lineEdit->setFont(font);
}
void Widget::on_checkBox_clicked(bool checked)
{
//只读
ui->lineEdit->setReadOnly(checked);
}
void Widget::on_checkBox_2_clicked(bool checked)
{
//是否能编辑
ui->lineEdit->setEnabled(checked);
}
void Widget::on_checkBox_3_clicked(bool checked)
{
//清空内容
ui->lineEdit->setClearButtonEnabled(checked);
}
void Widget::on_radioButton_clicked()
{
//黑色
QPalette plet = ui->lineEdit->palette();
plet.setColor(QPalette::Text,Qt::black);
ui->lineEdit->setPalette(plet);
}
void Widget::on_radioButton_2_clicked()
{
//红色
QPalette plet = ui->lineEdit->palette();
plet.setColor(QPalette::Text,Qt::red);
ui->lineEdit->setPalette(plet);
}
void Widget::on_radioButton_3_clicked()
{
//蓝色
QPalette plet = ui->lineEdit->palette();
plet.setColor(QPalette::Text,Qt::blue);
ui->lineEdit->setPalette(plet);
}