如何在QPushButton的边界和内部文本之间添加一些填充?

时间:2013-03-06 12:13:08

标签: qt

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

3 个答案:

答案 0 :(得分:9)

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

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

或者

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

有关样式表的更多信息,请访问here

答案 1 :(得分:6)

我没有为每个按钮设置样式表,而是更容易更新sytle,以便每个按钮的最小尺寸更大一些。你可以继承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);

答案 2 :(得分:2)

您可以使用以下命令为窗口/小部件中的所有按钮设置填充:

QPushButton { padding: 10px; }

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