wie kann ich in einem selbsterstelltem Qlabel malen?

Verschiedenes zu Qt
Antworten
dieter.gramzow
Beiträge: 18
Registriert: 12. Februar 2007 11:31

wie kann ich in einem selbsterstelltem Qlabel malen?

Beitrag von dieter.gramzow »

hallo,

der aufruf eines Qlabels ist kein problem...
auch malen kann ich darin...

hier ein beispiel:
----------------------------------------------------------------------------------
#include <QtGui>

int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QRect rect(0,0,100,100);
QPixmap pm(rect.size());
pm.fill();

QPainter p(&pm);
QPainter q(&pm);
QPainter r(&pm);

QBrush brush(Qt::blue);

p.setBrush(brush);
q.setBrush (Qt::red);
r.setBrush (Qt::yellow);

QRect ra = rect.adjusted (10,90,-10,-0);
p.drawRect(ra);
QRect rb = rect.adjusted (20,80,-20,-10);
r.drawRect(rb);
QRect rc = rect.adjusted (30,70,-30,-20);
q.drawRect(rc);

QLabel l;
l.setPixmap(pm);
l.show();

return app.exec();
}
------------------------------------------------------------------------------------
nun habe ich jedoch ein Mainwindow, indem nun 3 QLabels erstellt
worden sind...

leider kann ich jetzt zb das "label01" nicht ansprechen,
bzw nicht in dem Qlabel malen...

ich habe in der generierten ui datei folgendes geschrieben...

label01->setPixmap(QPixmap());


nun müsste doch ein pixmap in "label01" vorhanden sein, oder ?

in meinem konstruktor TURM.CPP habe ich nun versucht die grösse
von "label01" an Qpixmap zu übergeben...

QPixmap pm(label01.size);
pm.fill();


desweiteren würde ich auch gern das label.show irgendwie weglassen,
da ich es in meinen methoden ja nicht jedesmal angeben kann...

es müsste doch irgendwie gehen, dass ich drei Qlabels in meinem MainWindow per QT-Designer positioniere, und dann in einer methode auf eines der Labels zugreife und sage, mal mir ein rechteck rein......

diese sache beschäftigt mich schon seit tagen...
ich danke vielmals für jede hilfe....
Zuletzt geändert von dieter.gramzow am 3. März 2007 14:15, insgesamt 2-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

leider kann ich jetzt zb das "label01" nicht ansprechen, bzw nicht in dem Qlabel malen...
Wieso nicht? Ich glaube hier fehlt C++ Grundverständnis.

btw: http://www.qtforum.de/forum/faq.php?mode=bbcode#5
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dieter.gramzow
Beiträge: 18
Registriert: 12. Februar 2007 11:31

Beitrag von dieter.gramzow »

:oops:

das mit dem erstellen der objekte klappt einwandfrei und ich denke das auch verstanden zu haben...
wie gesagt, ich würde gern auf das qlabel mit dem namen "Label01" in meinem QMainWindow zugreifen...

wie kann ich das anstellen?
etwa mit

label01->setpixmap(QPixmap pm());
pm.fill();


es wäre total super, wenn ich einen ansatz, oder eine konkrete korrektur bekommen könnte...

dankeee.....
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn Du die Labels erzeugst musst Du dir den Pointer merken (c++ basics) damit Du später wieder auf das Label zugreifen kannst. fertig
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dieter.gramzow
Beiträge: 18
Registriert: 12. Februar 2007 11:31

Beitrag von dieter.gramzow »

ja danke..... das klappt jetzt auch...

mit folgenden befehlen malt er mir ein rechteck in mein label:


QRect rect(0,0,100,100);
QPixmap bild(rect.size());
label01->setPixmap(bild);
bild.fill(Qt::black);
/

jedoch kann ich nicht die position des rechteck verändern, wenn ich an den werten herumspiele (0,0,100,100)...(x,y,width,height)

auch die füllung ist ständig grau...

woran könnte das denn liegen?

vielen dank .... grüsse... dieter gramzow
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

abel01->setPixmap(bild);
bild.fill(Qt::black);

Wie soll da das Rechteck auf dem Label schwarz werden wenn Du das Pixmap davor schon zuweist?

Und rect bestimmt nur die Größe des Pixmaps, nicht die Position auf dem Label!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dieter.gramzow
Beiträge: 18
Registriert: 12. Februar 2007 11:31

Beitrag von dieter.gramzow »

CHRISTIAN.... DU BIST DER GRÖSSTE...

ICH KANN SOGAR JETZT MALEN, WIE ICH WILL...

tausend dank... gruss, dieter....
Antworten