【问题标题】:Increase check box size not its text using QCheckbox?使用 QCheckbox 增加复选框大小而不是其文本?
【发布时间】:2011-06-10 05:41:36
【问题描述】:

如何增加 QCheckBox 控件的复选框大小而不是文本大小?

谢谢。

【问题讨论】:

    标签: qt qcheckbox


    【解决方案1】:

    杰罗姆给了你很好的建议。我只会举更多的例子。

    QCheckBox::indicator {
         width: 40px;
         height: 40px;
     }
    
      QCheckBox::indicator:checked
      {
        image: url(../Checkbox_checked_normal.png);
      }
      QCheckBox::indicator:unchecked
      {
        image: url(../Checkbox_unchecked_normal.png);
      }
    
      QCheckBox::indicator:checked:hover
      {
        image: url(../Checkbox_checked_hovered.png);
      }
      QCheckBox::indicator:unchecked:hover
      {
        image: url(../Checkbox_unchecked_hovered.png);
      }
      QCheckBox::indicator:checked:pressed
      {
        image: url(../Checkbox_checked_pressed.png);
      }
      QCheckBox::indicator:unchecked:pressed
      {
        image: url(../Checkbox_unchecked_pressed.png);
      }
      QCheckBox::indicator:checked:disabled
      {
        image: url(../Checkbox_checked_disabled.png);
      }
    

    注意url()用法的区别。在我的示例中,我从磁盘加载图像,而不是我认为更合适的嵌入式资源系统。如果您以 (:/...) 开头的 url,它将从嵌入式资源系统加载。

    然后加载您的样式表,如下所示

    QFile file("your path");
    bool bOpened = file.open(QFile::ReadOnly);
    assert (bOpened == true);
    
    QString styleSheet = QLatin1String(file.readAll());
    
    qApp->setStyleSheet (styleSheet);
    

    我希望这会有所帮助。

    【讨论】:

    • 请注意,根据Qt documentation,“图像从不放大,但在必要时总是缩小”(svg 除外)。
    【解决方案2】:

    我建议使用Qt style sheet

    您可以更改指标的大小:

    QCheckBox::indicator {
         width: 40px;
         height: 40px;
    }
    

    您必须更改指示器的图像,并提供具有相应尺寸的图像:

    QCheckBox::indicator:checked {
         image: url(:/images/checkbox_checked.png);
    }
    

    您还可以使用 Qt 设计器和样式表编辑器进行更改。右键单击 QCheckbox,然后选择 Change styleSheet

    【讨论】:

    • 我在 Qt Designer 中添加了更改的图像。我认为您的答案比“我也是”的答案更好。如果您不同意,请恢复它。
    • 指标大小不会改变默认复选框的大小
    【解决方案3】:

    我用过这个:

    eyeChk = new QCheckBox("Eyes:");
    
    _eyeChk->setStyleSheet("QCheckBox::indicator { width:150px; height: 150px;} QCheckBox::indicator::checked {image: url(/home/jvdglind/Downloads/280px-PNG_transparency_demonstration_2.png);}");
    

    并且刚刚找到了不错的默认复选框图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2013-02-26
      • 2012-01-04
      • 2011-01-03
      相关资源
      最近更新 更多