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

    }

相關文章
相關標籤/搜索