8

较长的字符串在 QPushButton 中看起来不太好,因为文本和按钮框架之间没有间距,即文本紧紧地放置在按钮内。有没有办法添加一些填充?

4

3 回答 3

15

QPushButton您可以通过其样式表设置 a 的填充。

myButton->setStyleSheet("padding: 3px;");

或者

myButton->setStyleSheet("padding-left: 5px; padding-right: 3px;"
"padding-top: 1px; padding-bottom: 1px;");

更多关于样式表的信息可以在这里找到。

于 2013-03-06T12:56:18.687 回答
6

不必为每个按钮设置样式表,我发现更新样式更容易,以便每个按钮的最小尺寸大一点。您可以将 QProxyStyle 子类化,这是修改样式的最简单方法,因为它将更改选择的任何样式,即 QWindowsXPStyle、QWindowsVistaStyle、QMacStyle 等。

像这样覆盖sizeFromContents以使按钮的最小尺寸更大一点:

class ProxyStyle : public QProxyStyle
{
public:
    QSize sizeFromContents(ContentsType ct, const QStyleOption* opt, const QSize & csz, const QWidget* widget = 0) const
    {
        QSize sz = QProxyStyle::sizeFromContents(ct, opt, csz, widget);
        if (ct == CT_PushButton)
            sz.rwidth() += 20;

        return sz;
    }
};

然后在创建应用程序之后,但在创建第一个窗口调用之前:

a.setStyle(new ProxyStyle);
于 2013-12-12T00:24:55.270 回答
4

您可以设置窗口/小部件中所有按钮的填充:

QPushButton { padding: 10px; }

比应用于每个子小部件要好得多。

于 2017-02-22T07:12:11.150 回答