2017-07-14 53 views
0

我想通过使用Qt中的标签来显示滑块的值。只要滑块值发生变化,就会调用槽功能。标签值在插槽功能中更新。目前它的工作,但不完美。 问题是:我已经在标签属性中将字体大小设置为12并加粗。但是每当滑块移动时,标签的字体大小变为8而不是粗体。我通过在插槽功能中添加setPointSizesetBold函数来解决此问题。但是有没有其他选择,可以更优雅?以下是mainwindow.h:如何保持标签字体大小不变,而不考虑Qt中的滑块更改?

private slots: 
    void on_p_slider_sliderMoved(int position); 

和mainwindow.cpp:

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));'并移除插槽中的所有内容。你是否在Designer中设置标签文本大小和字体? –

回答

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欢迎)) –

相关问题