Bonjour,
Dans une application Qt avec widgets, j'aimerais savoir s'il est possible d'incorporer une image vectorielle (svg) en fond de fenêtre (QMainWindow ou QDialog). Et comment ?
Merci.
Bonjour,
Dans une application Qt avec widgets, j'aimerais savoir s'il est possible d'incorporer une image vectorielle (svg) en fond de fenêtre (QMainWindow ou QDialog). Et comment ?
Merci.
Je précise un petit peu la question :
Afficher un fichier svg est apparemment facile
Mon problème est le redimensionnement de l'image. Un 0 0 0 0 strech strech n'est pas utilisable en StyleSheet. Utiliser le paint de la fenêtre... ou un QLabel en fond d'écran Il n'y a pas mieux ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 /* QT += svg #include <QtSvg> */ ui->setupUi(this); setStyleSheet( "background-image: url(:/svg/newtux.svg);" "background-position: top left; " "background-repeat: no-repeat;");
Re,
pour l'instant faute de mieux et faute de temps, j'ai surchargé paintEvent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /* QT += svg #include <QtSvg> */ protected: void paintEvent(QPaintEvent *event); private: Ui::MainWindow *ui; QPixmap m_pix;On va dire résolu. Mais s'il y a mieux, je reste preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { QSvgRenderer m_renderer(QString(":/svg/newtux.svg")); m_pix = QPixmap(m_renderer.defaultSize()); m_pix.fill(Qt::transparent); QPainter m_painter(&m_pix); m_renderer.render(&m_painter); } void MainWindow::paintEvent(QPaintEvent *event) { Q_UNUSED(event) QPainter m_painter(this); m_painter.fillRect(m_pix.rect(), Qt::transparent); m_painter.drawPixmap(ui->widget->rect(), m_pix); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager