2017-07-14 2 views
0

Qtのラベルを使用してスライダの値を表示したいとします。スライダの値が変更されると、スロット関数が呼び出されます。ラベル値はスロット機能で更新されます。現時点では動作しますが、完全ではありません。 問題は次のとおりです。フォントサイズを12に設定し、labelプロパティで太字にしました。しかし、スライダが動かされるたびに、ラベルのフォントサイズは太字ではなく8になります。私は、スロット機能にsetPointSizesetBold関数を追加することでこれを解決しました。しかし、よりエレガントな代替案がありますか?Qtのスライダの変更に関係なく、ラベルのフォントサイズを一定に保つには?

private slots: 
    void on_p_slider_sliderMoved(int position); 

とmainwindow.cpp:以下mainwindow.hある

void MainWindow::on_p_slider_sliderMoved(int position) 
{ 
    ui->p_label->setNum(position); 

    //more elegant method? 
    QFont fontObj; 
    fontObj.setPointSize(12); 
    fontObj.setBold(true); 
    ui->p_label->setFont(fontObj); 
} 
+0

あなたは[Qtのスタイルシート]を使用しようとすることができます(http ://doc.qt.io/qt-5/stylesheet-reference.html)。 – m7913d

+0

'ui-> p_label-> setText(QString :: number(position));'を試して、あなたのスロット内のすべてのものを削除してください。また、ラベルのテキストのサイズとフォントをデザイナーで設定するのか、それともプログラムで設定しますか? –

答えて

0

試してみてくださいそれsetStyleSheet ..

lab = new QLabel(this); 
lab->setStyleSheet("background: rgb(255,255,255); color: #999999;" 
        "font-family: Arial; font-style: bold; font-size: 12pt;"); 
+0

ありがとう、それは動作します!コンストラクタにsetStyleSheetメソッドを挿入します。私は、mainwindow.uiの設定を参考にしてパラメータを変更しました。コードの追加行は:ui-> p_label-> setStyleSheet( "color:black; font-size:12pt; font-weight:600;") ; – penguin007

+0

@ penguin007ようこそ)) –

関連する問題