【问题标题】:How to set StyleSheet for an specific label in QMessageBox?如何为 QMessageBox 中的特定标签设置 StyleSheet?
【发布时间】:2020-06-30 06:33:18
【问题描述】:

我想要一个更大的 QMessageBox 和居中的文本,但是当我通过 stylsheet 增加它的大小时,它会是这样的:

如果我可以给它一些填充或边距,它会被修复,但我不能。

void MainWindow::showMsg()
{
    QMessageBox m_MsgBox;
    m_MsgBox.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
    m_MsgBox.setIcon(QMessageBox::Warning);
    m_MsgBox.setText("Your Trial is finished! Please purachase a plan.");
    m_MsgBox.setStandardButtons(QMessageBox::Ok);
    m_MsgBox.setStyleSheet("QLabel{min-width:200 px; font-size: 13px;} QPushButton{ width:25px; font-size: 13px; }");
    if(m_MsgBox.exec() == QMessageBox::Ok)
        m_MsgBox.close();
}

我想为这个 QMessageBox 中的每个 QLabel(QMessageBox::Warning & setText) 赋予不同的 css 属性。

【问题讨论】:

    标签: c++ qt qtstylesheets qmessagebox


    【解决方案1】:

    您可以通过对象名称来处理小部件中的特定子小部件:

    QLabel#MyLabel { 风格... }

    QWidget* p_widget = new QWidget;
    
    QLabel* p_label1 = new QLabel;
    p_label1->setText("I'm not cool.");
    
    QLabel* p_label2 = new QLabel;
    p_label2->setObjectName("coolLabel");
    p_label2->setText("I'm VERY cool.");
    
    QVBoxLayout* p_layout = new QVBoxLayout;
    p_layout->addWidget(p_label1);
    p_layout->addWidget(p_label2);
    
    p_widget->setLayout(p_layout);
    
    p_widget->setStyleSheet("QLabel {color: black;} QLabel#coolLabel {color: red;}");
    

    这个例子应该工作。

    我想强调的是,通过 QSS 设置尺寸和布局是一个的想法。熟悉 QLayouts,它们非常强大且充满活力!

    顺便说一句:“您的试用已结束。请购买一个计划。”

    【讨论】:

    • 谢谢!但是我如何将它用于我的 QWidget 中的 QLabel,它使用 setText()
    【解决方案2】:

    我在qt论坛得到了这个答案:

    Only answering to your topic title, if you look into the source code of QMessageBox, every label has a object name, so that should be easy to set different style to them by using ID selector.
    
    text: "qt_msgbox_label"
    
    icon: "qt_msgboxex_icon_label"
    
    informativeText: "qt_msgbox_informativelabel"
    
    Note: These names may change in future versions.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 2011-10-08
      • 1970-01-01
      相关资源
      最近更新 更多