Добавьте изображение только внизу или вверху в приложении QT с помощью StyleSheet (QStyle) - PullRequest
0 голосов
/ 18 августа 2011

Как я могу добавить изображение только внизу или вверху формы в QT с таблицей стилей.Например, я хочу добавить изображение, которое вы можете увидеть на изображении ниже, а затем установить отступ формы:

ссылка на изображение: http://0000.2.img98.net/out.php/i11716_bg-header2.jpg

Пожалуйста, объясните это с помощью CSS-команд.

1 Ответ

0 голосов
/ 18 августа 2011

Вы можете сделать это с помощью qss (css). Но чтобы включить таблицы стилей в свой пользовательский QWidget, вам нужно обработать событие Paint.

mywidget.cpp

void QMyWidget::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

Добавьте ваш css (qss) в ресурсы и добавьте псевдоним, который будет использоваться в качестве имени файла для загрузки.

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

mymainwindow.cpp

void QMyMainWindow::loadStyleSheet(QString path)
{
    QFile data(path);
    QString style;
    if(!data.open(QFile::ReadOnly))
        return false;

    QTextStream styleIn(&data);
    style = styleIn.readAll();
    data.close();

    qApp->setStyleSheet(qApp->styleSheet().append(style));
}

Затем вызовите эту функцию с псевдонимом ресурса в файле QSS (CSS). Вы можете сделать это в конструкторе или в событии изменения размера (для мобильной разработки), чтобы отслеживать и загружать разные стили для разных разрешений.

...