Qtのラベルを使用してスライダの値を表示したいとします。スライダの値が変更されると、スロット関数が呼び出されます。ラベル値はスロット機能で更新されます。現時点では動作しますが、完全ではありません。 問題は次のとおりです。フォントサイズを12に設定し、labelプロパティで太字にしました。しかし、スライダが動かされるたびに、ラベルのフォントサイズは太字ではなく8になります。私は、スロット機能にsetPointSize
とsetBold
関数を追加することでこれを解決しました。しかし、よりエレガントな代替案がありますか?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);
}
あなたは[Qtのスタイルシート]を使用しようとすることができます(http ://doc.qt.io/qt-5/stylesheet-reference.html)。 – m7913d
'ui-> p_label-> setText(QString :: number(position));'を試して、あなたのスロット内のすべてのものを削除してください。また、ラベルのテキストのサイズとフォントをデザイナーで設定するのか、それともプログラムで設定しますか? –