QT - текстовое форматирование QPushButton

У меня есть QPushButton, и на этом у меня есть текст и и значок. Я хочу сделать текст на кнопке, чтобы быть полужирным и красным. Посмотревший другие форумы, погугленные и проигранные моя надежда. Кажется, что нет никакого способа сделать это, если кнопка имеет значок (конечно, если Вы не создаете новый значок, который является text+former значком). Это - единственный путь? У кого-либо есть лучшая идея?

7
задан Narek 7 June 2010 в 13:53
поделиться

2 ответа

Для изменения форматирования кнопки не нужно создавать подкласс, лучше использовать таблицы стилей, например,

QPushButton {
    font-size: 18pt;
    font-weight: bold;
    color: #ff0000;
}

Применив это к кнопке, которую вы хотите изменить, вы сделаете текст кнопки 18pt, жирным и красным. Вы можете использовать widget->setStyleSheet()

Применяя это к виджету в иерархии выше, вы измените стиль всех кнопок под ним, механизм QT stylesheet очень гибкий и достаточно хорошо документирован.

Вы можете устанавливать таблицы стилей и в дизайнере, это придаст стиль виджету, который вы редактируете немедленно

18
ответ дан 6 December 2019 в 07:05
поделиться

вы создаете подкласс "QPushbutton", затем переопределяете событие paint, там вы изменяете текст по своему желанию.

вот оно,

class button : public QPushButton
    {
    Q_OBJECT

public:
    button(QWidget *parent = 0)
        {

        }
    ~button()
        {

        }

    void paintEvent(QPaintEvent *p2)
        {

        QPushButton::paintEvent(p2);

            QPainter paint(this);
            paint.save();
            QFont sub(QApplication::font());
            sub.setPointSize(sub.pointSize() + 7);
            paint.setFont(sub);
            paint.drawText(QPoint(300,300),"Hi");
            paint.restore();

        }
    };

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    button b1;
    b1.showMaximized();
    return a.exec();
}
5
ответ дан 6 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: