day03 QT学习 常用控件 QLabel QPushButton QLineEdit使用 QSS介绍以及QObject子对象的遍历
一、QLabel继承自QWidget
QLabel有两个格式可以选择,分别是PlainText和RichText
富文本支持HTML语言,即你设置QLabel的文本为HTML,QLabel能够解析。
我们可以使用QLabel来显示图,可以使用pixmap或者qss设置
使用QLabel和QMovie来播放GIF动画
QMovie *pmov = new QMovie(":/QLabelTest/Resources/timg.gif");
ui.label_2->setMovie(pmov);
pmov->start();
使用富文本显示并处理链接点击
选中label之后,右键改变多信息文本,选中你的链接地址,然后插入。
QLabel提供了两个信号用于处理 鼠标点击和移动。
void linkActivated(const QString &link)
void linkHovered(const QString &link)
QLabel的选择和编辑 setTextInteractionFlags
二、QPushButton
快捷键设置
setShortcut/setShortcut(tr(“Alt+F7”))
第一种方法,直接在button的名字前面加上一个&符号,这样你就可以使用alt+button名的首字母来调用。
第二种方法,使用代码设置。
ui->shortpushButton->setShortcut(tr("Ctrl+X,A"));
QPushButton样式设置
flat属性设置是否凹凸。
使用QSS, 设置圆角按钮
QPushButton{
border-radius:10px;
color: rgb(255, 255, 255);
}
QPushButton::!hover{
background-color: qlineargradient(spread:reflect, x1:1, y1:0.522, x2:1, y2:0, stop:0.0945274 rgba(0, 0, 0, 255), stop:0.970149 rgba(255, 255, 255, 255));
}
QPushButton::hover{
background-color: qlineargradient(spread:reflect, x1:1, y1:0.54, x2:1, y2:0, stop:0.19403 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255, 255));
}
注意花括号的使用
三、QLineEdit
PlaceHolderText:显示提示输入信息。
clearButtonEnabled:有清空内容的按钮。
提供了undo和redo的槽函数。
输入验证:
格式掩码:适合固定长度,比如ip地址。
setInputMask(“000.000.000.000;_”)
函数参数的掩码具体怎么设置参考手册,分号前是设置掩码,分号后是表示没有输入时的符号表示。显示效果如下:
格式校验:包括整数、浮点数、正则表达式。
使用QValidator
QIntValidator *ival = new QIntValidator();
ival->setRange(10,1000);
ui.iedit->setValidator(ival);
QDoubleValidator *dval = new QDoubleValidator();
dval ->setRange(10,1000);
dval->setDecimals(3);//设置精度
//不用科学计数法
dval->setNotation(QDoubleValidator::StandardNotation);
ui.iedit->setValidator(dval);
使用QRegExpValidator
QRegExp rx(“正则表达式”);
QRegExpValidator *pReg = new QRegExpValidator(rx,this);
ui.email->setValidator(pReg);
通过对应控件的Validator()获得QValidator对象,根据这个对象进行判断。
const QValidator * pQv = ui.email->validator();
int pos = 0;//出错的位置
pQv->validate(ui.email->text(), pos) 判断即可。
QLineEdit信号
editingFinshed 按下回车、焦点移开触发
returnPressed按下回车、焦点移开触发且格式有效
textChanged setText()都能激发。
QLineEdit QSS的样式设置
QLine设置显示模式(密码),设置echoMode 为password即可。
QSS的设置可以查询 Qt助手,在Qt助手搜索 Qt Style Sheet即可。如下代码通过QSS更改了QLineEdit的密码模式输入的字符以及边框还有圆角。
遍历所有QObject的子节点
只有继承自QObject的类才可以遍历所有的QObject子节点。通过当前QObject对象可以获得对象名;通过QMetaObject对象可以获得当前对象的类名。
const QObjectList cs = this->children();
for(int i = 0; i<cs.size(); i++)
{
qDebug() << cs[i]->objectName();
const QMetaObject *mobj = cs[i]->metaObject();
QString strclassname = mobj->className();
}
posted on 2019-08-22 23:23 merlinzjl 阅读(1352) 评论(0) 编辑 收藏 举报