Вопрос:
Более длинные строки не выглядят слишком хорошо в QPushButton, потому что между ними нет интервала между рамкой текста и кнопок, т.е. е. текст помещается плотно внутри кнопки. Есть ли способ добавить некоторые дополнения?
Лучший ответ:
Вы можете установить дополнение QPushButton через таблицу стилей.
myButton->setStyleSheet(«padding: 3px;»);
или
myButton->setStyleSheet(«padding-left: 5px; padding-right: 3px;» «padding-top: 1px; padding-bottom: 1px;»);
Более подробную информацию о таблицах стилей можно найти здесь.
Ответ №1
Вместо того, чтобы устанавливать таблицу стилей для каждой кнопки, мне было проще обновить силот, чтобы минимальный размер для каждой кнопки немного больше. Вы можете подклассифицировать 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
Вы можете установить прописку для всех кнопок в окне/виджете с помощью:
QPushButton { padding: 10px; }
Гораздо лучше, чем применять к каждому подвиджету.