0

qlineedit をサブクラス化し、デフォルトのテキストを持つカスタム行編集を作成しました。デフォルトのテキストは、ユーザーがテキストを書き始めるまでグレー表示されます。また、ライン編集にはタイムマスク入力があります。23:59:59 の範囲の入力のみを受け入れます。

問題は、行編集が空で、デフォルトのテキストが灰色で表示されている場合、カーソルも灰色です。デフォルトのテキストが灰色のときにカーソルの色を黒に変更する方法を知りたいです。

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

1 に答える 1

0

QLineEditplaceholderTextには、編集ボックスにテキストがない場合に表示される灰色のテキストを設定するために使用できるという名前のプロパティがあります。カーソルの色は変更されず、入力を開始するとプレースホルダー テキストは消えます。

ここに画像の説明を入力

于 2015-04-21T10:53:53.840 に答える