2017-05-23 4 views
0

저는 C++에서 PyQt5에서 Qt5로 전환하는 중입니다. 힘든 시간을 보내고 있습니다. logo이라는 Qwidget을 포함하는 간단한 UI를 만들었습니다.UI에서 Qt5 위젯 속성

QSvgRenderer renderer(QString(":/LogoSVG.svg")); 

QImage image(500, 200, QImage::Format_ARGB32); 
image.fill(0x000000); 

QPainter painter(&image); 
renderer.render(&painter); 

파이썬에서, 내가

을하려는 UI 형태 로더 클래스에 다음 SVG를 렌더링하는 간단한 위젯 클래스를 만들 것입니다 :이이 코드 위젯 렌더링 SVG 위젯 만들기 위해 노력하고있어
self.logo = SVGRender(self) 

나는 C++ Qt를에서 같은 일을 할 노력하고있어, 그래서 여기 내가 지금까지 무엇을 그리고 그것은 오류 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); 

} 

누군가가 내가 잘못 걸 보여줄 수 있습니까?

ui.logo = logoW(this); 

에 : 나는 또한 당신이에서 이미지를 표시 할 것을 이해

ui.logo = new logoW(this); 

답변

1

변수 ui.logo는 귀하의 경우는 변경 개체의 포인터를 필요 로고 위젯. 이렇게하려면 당신은 paintEvent 방법을 구현해야합니다

* .H

class logoW: public QWidget 
{ 
    Q_OBJECT 

public: 
    logoW(QWidget *parent = 0); 

protected: 
    void paintEvent(QPaintEvent *event); 
}; 

* cpp를

logoW::logoW(QWidget *parent):QWidget(parent) 
{ 
} 

void logoW::paintEvent(QPaintEvent *event){ 
    Q_UNUSED(event) 
    QSvgRenderer renderer(QString(":resources/LogoSvg.svg")); 

    QPainter painter(this); 

    renderer.render(&painter); 
} 
+0

Welp, new'가 컴파일 할 수 및 편집'추가 작동하게 만들었습니다. 도와 주셔서 감사 드리며 지금 내가 잘못한 것을 알고 있습니다. – aseylys