day03 QT学习 经常使用控件 QLabel QPushButton QLineEdit使用 QSS介绍以及QObject子对象的遍历

1、QLabel继承自QWidget正则表达式

 

QLabel有两个格式能够选择,分别是PlainText和RichText函数

富文本支持HTML语言,即你设置QLabel的文本为HTML,QLabel可以解析。动画

 

咱们能够使用QLabel来显示图,能够使用pixmap或者qss设置ui

 

使用QLabel和QMovie来播放GIF动画this

    QMovie *pmov = new QMovie(":/QLabelTest/Resources/timg.gif");对象

    ui.label_2->setMovie(pmov);blog

    pmov->start();继承

 

使用富文本显示并处理连接点击ip

选中label以后,右键改变多信息文本,选中你的连接地址,而后插入。ci

QLabel提供了两个信号用于处理 鼠标点击和移动。

void linkActivated(const QString &link)

void linkHovered(const QString &link)

 

QLabel的选择和编辑 setTextInteractionFlags

 

2、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));

}

注意花括号的使用

 

3、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();

    }

相关文章
相关标签/搜索