Seite 1 von 1

wie kann ich in einem selbsterstelltem Qlabel malen?

Verfasst: 3. März 2007 12:44
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....

Verfasst: 3. März 2007 12:49
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

Verfasst: 3. März 2007 13:04
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.....

Verfasst: 3. März 2007 16:25
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

Verfasst: 3. März 2007 16:33
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

Verfasst: 3. März 2007 16:38
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!

Verfasst: 3. März 2007 17:11
von dieter.gramzow
CHRISTIAN.... DU BIST DER GRÖSSTE...

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

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