Ich bin im Übergang von PyQt5 zu Qt5 in C++ und ich habe ein bisschen eine harte Zeit. Ich habe eine einfache Benutzeroberfläche erstellt, die ein Qwidget namens logo
enthält. Ich versuche dies ein SVG zu machen Widget Widget mit diesem Code machen:Qt5 Widget Eigenschaften von UI
QSvgRenderer renderer(QString(":/LogoSVG.svg"));
QImage image(500, 200, QImage::Format_ARGB32);
image.fill(0x000000);
QPainter painter(&image);
renderer.render(&painter);
In Python, würde ich eine einfache Widget-Klasse erstellen, die die SVG dann in der Benutzeroberfläche Form Loader-Klasse macht ich
tun würdeself.logo = SVGRender(self)
ich versuche, das gleiche in C++ Qt zu tun, also hier ist, was ich bisher habe, und es ist der Fehler zurückgegeben error: cannot convert ‘logoW’ to ‘QWidget*’ in assignment
example.h
#ifndef EXAMPLE_H
#define EXAMPLE_H
#include "ui_example.h"
class example : public QWidget
{
Q_OBJECT
public:
example(QWidget *parent = 0);
private:
Ui::example ui;
};
class logoW: public QWidget
{
Q_OBJECT
public:
logoW(QWidget *parent = 0);
};
#endif
example.cpp
#include <QtGui>
#include <QScreen>
#include <QApplication>
#include <QDesktopWidget>
#include <QCoreApplication>
#include <QSvgRenderer>
#include <QPainter>
#include <QImage>
#include <iostream>
#include "example.h"
using namespace std;
example::example(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
ui.logo = logoW(this)
}
logoW :: logoW(QWidget * parent = 0){
QSvgRenderer renderer(QString(":resources/LogoSvg.svg"));
QImage image(500, 200, QImage::Format_ARGB32);
image.fill(0xaaA08080);
QPainter painter(&image);
renderer.render(&painter);
}
Kann mir jemand zeigen, was mache ich falsch?
Welp, das Hinzufügen 'new' erlaubt es zu kompilieren und bearbeiten hat es funktioniert. Danke für deine Hilfe und jetzt weiß ich, was ich falsch gemacht habe. – aseylys