Warum wird ein SVGWidget im Dialog nicht angezeigt?

Alles rund um die Programmierung mit Qt
Antworten
patlecat
Beiträge: 2
Registriert: 28. Juli 2008 12:47
Wohnort: Winterthur
Kontaktdaten:

Warum wird ein SVGWidget im Dialog nicht angezeigt?

Beitrag von patlecat »

Tach zusammen

Ich habe ein Problem: Ich habe in einem separaten Testprojekt einen Dialog aufgesetzt auf dem ich ein kleines SVG Widget erzeugte dessen Position ich im PaintEvent jeweils der Fenstergrösse anpasse.
Dies funktioniert im Testprojekt perfekt, nur wenn ich die Klassen dann in meine Applikation (ebenfalls mit Dialog) einbaute zeigte sich das Widget nicht mehr an :(

Hat jemand eine Idee was da los sein könnte?

Ich benutze Qt4.4, mit Eclipse und mingW unter Windows.
:?:
Old Harmony
Beiträge: 1
Registriert: 29. August 2008 13:33
Wohnort: Mönchenholzhausen
Kontaktdaten:

Beitrag von Old Harmony »

Du must das die Klasse (das Widget) dierekt oder mit nen Layout plazieren das geht mit:

im Layout:

Code: Alles auswählen

Layout->addWidget(new SVGWidget);
dierekt also ohne Layout:

Code: Alles auswählen

SVGWidget->setGeometry(0, 0, FensterBereite, FensterHoehe);
Wen du es direkt machen willst musst du natürlich über die Variabalen FensterBreite und FensterHoehe deren größen zu Ordnen.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Größenänderungen bitte im resizeEvent und nicht im paintEvent.

Wie baust du das Widget ein? Im Designer oder per Code, wenn per Code, dann mal ohne parent erstellen, dann sollte es ja irgendwo auftauchen.

Ansonsten: Was sagt der Debugger?
patlecat
Beiträge: 2
Registriert: 28. Juli 2008 12:47
Wohnort: Winterthur
Kontaktdaten:

Beitrag von patlecat »

Danke für eure Tips, hab alles ausprobiert aber ich komm echt nid drauf. Mein Testprojekt hab ich exakt gleich erstellt wie das Originale, aber dort erscheint das SVG IMMER auf dem eigentlichen Projekt aber NIE :(

Testprojekt Code:

Code: Alles auswählen

AboutDialog::AboutDialog(QWidget *parent)
    : QDialog(parent),
      m_mySvg(":/new/prefix1/attenzione.svg", this)
{
	ui.setupUi(this);
	m_mySvg.resize(20, 20);
	m_mySvg.setToolTip(tr("Hit me!"));

}

AboutDialog::~AboutDialog()
{

}

bool AboutDialog::event(QEvent * qevent)
{
	return QDialog::event(qevent);
}

void AboutDialog::paintEvent(QPaintEvent * qevent)
{
	QDialog::paintEvent(qevent);
	//m_mySvg.move(this->width() - 21, 1);
}

void AboutDialog::resizeEvent(QResizeEvent* qevent)
{
	QDialog::resizeEvent(qevent);
	m_mySvg.move(this->width() - 21, 1);
}
m_mySvg ist ein Objekt der Klasse AboutButton. Die Klasse AboutButton wurde von QSvgWidget abgeleitet und AboutDialog von QDialog. Das SVGWidget wurde nicht im Designer eingefügt, sondern nur per Code.
Antworten