2015-04-19 87 views
0

我已將qlineedit子類化並編寫了一個具有默認文本的自定義行編輯。默認文本是灰色的,直到用戶開始寫入一些文本爲止。行編輯也有一個時間掩碼輸入。它只接受23:59:59範圍內的輸入。qt4 - 更改qlineedit中文本光標的顏色?

問題是當行編輯爲空並且默認文本以灰色顯示時,光標也是灰色的。我想知道如何將光標顏色更改爲黑色,而默認文本爲灰色。

我試圖重寫paintevent。我看到了qlineedit的源代碼,並看到QLineControl :: DrawCursor負責在paintevent中繪製遊標。但我不知道如何更改筆顏色,以便它可以影響光標顏色。任何想法如何做到這一點? TNX。

void QCustomLineEdit::paintEvent(QPaintEvent * pe) 
{ 
    QLineEdit::paintEvent(pe); 
    QPainter painter; 
    painter.begin(this); 
    painter.setPen(Qt::red); 
    painter.end(); 
} 

回答

0

QLineEdit有一個名爲placeholderText你可以用它來設置顯示爲灰色文本時出現在編輯框中沒有文本,顯示屬性。遊標顏色沒有改變,當你開始輸入佔位符時,文字消失。

enter image description here

+0

是的,我知道那個屬性。我沒有使用該屬性並重寫我自己的qlineEdit,因爲我希望每當光標回到0位置時,默認文本再次出現。但使用此屬性不會給我我想要的功能。 –