Seite 1 von 1
Warum wird ein SVGWidget im Dialog nicht angezeigt?
Verfasst: 29. Juli 2008 01:26
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.

Verfasst: 3. September 2008 04:21
von Old Harmony
Du must das die Klasse (das Widget) dierekt oder mit nen Layout plazieren das geht mit:
im Layout:
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.
Verfasst: 3. September 2008 09:09
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?
Verfasst: 12. Oktober 2008 13:17
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.