【问题标题】:QPushButton resize after changing color更改颜色后 QPushButton 调整大小
【发布时间】:2015-11-24 06:44:38
【问题描述】:

我想修改 QPushButtons 的背景颜色。问题是使用 setStyleSheet("QPushButton { background-color: #00FF00 }"); 修改背景颜色,按钮大小也会缩放。

之前

之后

我了解通过更改背景颜色,整个按钮样式表会被覆盖并重置为某个默认值 (How to override just one property:value pair in Qt StyleSheet)。

我的问题是:如何设置按钮的大小,使其与原始大小相同?

我使用的是 MacOSX,我尝试了所有高度、最小高度、填充的组合。

【问题讨论】:

    标签: c++ css qt


    【解决方案1】:

    如果只是设置背景颜色,那么使用 QPalette 将是一个选项。

    QPushButton button;
    QPalette palette = button.palette();
    palette.setColor(QPalette::Background, QColor("#00FF00");
    button.setPalette(palette);
    

    【讨论】:

      【解决方案2】:

      我认为这是因为未指定 min-widthmin-height

      根据documentation

      如果没有指定这个属性,最小宽度是根据导出的 关于小部件的内容和样式。

      一种可能性是在设置样式之前获取按钮的大小,并在应用背景颜色时设置该大小。

      即(在本例中,我们有一个 UI 文件,其中包含一个名为 pushButton 的按钮):

      QString width ("min-width: " +
                     QString::number(ui.pushButton->size().width()) +
                     " px; " +
                     "max-width: " +
                     QString::number(ui.pushButton->size().width()) +
                     " px;");
      QString height ("min-height: " +
                      QString::number(ui.pushButton->size().height()) +
                      " px; " +
                      "max-height: " +
                      QString::number(ui.pushButton->size().height()) +
                      " px;");
      
      QString style ("#pushButton { " + width + height +
                     "background-color: black; }");
      
      qApp->setStyleSheet(style);
      

      我设置了最小和最大宽度和高度,因为reference

      如果您想要一个固定宽度的小部件,请设置最小宽度和 最大宽度为相同的值。

      当然,更简单的解决方案是在设置背景颜色后调整按钮的大小。像这样的:

      int width = ui.pushButton->size().width();
      int height = ui.pushButton->size().height();
      
      QString style ("#pushButton { background-color: black; }");
      
      qApp->setStyleSheet(style);
      
      ui.pushButton->resize(width, height);
      

      【讨论】:

        猜你喜欢
        • 2023-03-20
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        • 2021-10-05
        • 1970-01-01
        • 1970-01-01
        • 2012-12-02
        • 1970-01-01
        相关资源
        最近更新 更多