zoukankan      html  css  js  c++  java
  • 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();

        }

  • 相关阅读:
    Apache+php在windows下的安装和配置
    我的mac的其他满了,发现是一个叫core的文件
    如何去掉drwxr-xr-x@中的@符号Linux文件扩展信息
    Wireshark使用教程
    nano 编辑
    sed: 1: “…”: invalid command code on Mac OS
    wireshark error: There are no interfaces on which a capture can be done.
    mac os x10.9.2 查看进程对应端口
    Mac下安装LNMP(Nginx+PHP5.6)环境
    Web实现浏览器端大文件分片上传
  • 原文地址:https://www.cnblogs.com/merlinzjl/p/11397462.html
Copyright © 2011-2022 走看看