Eine runde Sache :-) QLabel

Alles rund um die Programmierung mit Qt
Antworten
Maik
Beiträge: 45
Registriert: 29. Mai 2006 10:54

Eine runde Sache :-) QLabel

Beitrag von Maik »

hallo,

möchte gern ein rundes label erstellen. soll ne grüne led symbolisieren.
habe was gehört von drawPrimitive, weiß aber nicht wie ich es im zusammenhang von label benutzen kann. oder gibt es ne möglichkeit
den punkt vom radiobutton zu benutzen und je nach event grün zu setzen oder so?

danke
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Re: Eine runde Sache :-) QLabel

Beitrag von ChMaster »

Maik hat geschrieben: hallo,
möchte gern ein rundes label erstellen. soll ne grüne led symbolisieren.
danke
einfacher als das. primitiver gehts nicht ;)

Öffnen Gimp oder sonst ein Bildbearbeitungsprogamm und erstell
dir ein Bild, in welcher Grösse du es haben möchtest und mach den
Hintergrund grün (natürlich musst du das Bild in runder form erstellen).
Speichern und das wars fürs erste.

Erstell im QtDesigner ein QLabel und füge dein erstelltes Bild hinzu,
natürlich währe es von Vorteil wenn du die Resourceengine vom
QtDesigner nützt. Dann schaltest du im PropertyEditor vom Designer
beim QLabel autoSize ein oder wie das heissen mag und fertig ist dein
rundes grünes Bild :-D. Im Quellcode deines Tools/Progammes kannst
du dann zum QLabel sagen, verstecke oder zeige dich. :-D
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
Maik
Beiträge: 45
Registriert: 29. Mai 2006 10:54

Beitrag von Maik »

hmm....ich wollte aber in mein label kein pixmap einfügen. dachte es gibt noch was anderes einfacheres schnelleres?

aber trotzdem danke

mfg
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Einfacher und schneller:

Code: Alles auswählen

class Led : public QWidget
Q_OBJECT
public:
Led(QWidget *parent) : QWidget(parent) {};

protected:
void paintEvent(QPaintEvent *)
{
  QPainter p(this);
  p.setBrush(QColor(0, 255, 0));
  p.setPen(QColor(0, 0, 0));
  p.drawEllipse(rect());
}
};
Maik
Beiträge: 45
Registriert: 29. Mai 2006 10:54

Beitrag von Maik »

danke für die antwort, seh aber keinen punkt. möchte auf ein label zeichnen. geht das oder wird der punkt wegen meinem code hinter dem label painted?

danke
#################################################################
#include "Widget_BedEl.h"
#include "Widget_DisplayFBG.h"

#include <QtGui>

Widget_DisplayFBG::Widget_DisplayFBG( QWidget *parent)
: QWidget (parent)
{
setObjectName(QString::fromUtf8("Widget_Display"));
setBaseSize(QSize(210, 140));

Display = new QLabel(this);
Display->setObjectName(QString::fromUtf8("Display"));
Display->setGeometry(QRect(0, 0, 210, 140));
Display->setPixmap(QPixmap("/home/bachmann/Icons/img/Display.bmp"));

}

void Widget_DisplayFBG::paintEvent(QPaintEvent *)
{
QPainter LED1(this);
LED1.setBrush(QColor(0,255,0));
LED1.drawEllipse(20,20,30,30);
}
#############################################################
#ifndef WIDGET_DISPLAYFBG_H
#define WIDGET_DISPLAYFBG_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QLabel>
#include <QtGui/QWidget>
#include <QtGui/QPushButton>
#include <QtGui/QPaintEvent>

#include <QtGui/QApplication>

class Widget_DisplayFBG : public QWidget
{
Q_OBJECT

public:
Widget_DisplayFBG(QWidget *parent = 0);
QLabel *Display;

protected:
void paintEvent(QPaintEvent *event);
};
#endif
Maik
Beiträge: 45
Registriert: 29. Mai 2006 10:54

Beitrag von Maik »

hi, also es klappt nicht so wie ich will. gibt aber bestimmt einen grund dafür :-P

wieso kann ich nicht auf ein pixmap zeichnen? hier der code. lass ich das pixmap weg gehts...

Widget_Display::Widget_Display( QWidget *parent)
: QWidget (parent)
{
setObjectName("Widget_Display");
setFixedSize(210,140);

display = new QLabel(this);
display->setObjectName("Display");
display->setGeometry(QRect(0, 0, 210, 140));
display->setPixmap(QPixmap("/home/bachmann/img/bit/display.png"));
}

void Widget_Display::paintEvent(QPaintEvent *)
{
QPainter p(this); //p(display) geht auch nicht
p.setBrush(QColor(0, 255, 0));
p.setPen(QColor(0, 0, 0));
p.drawEllipse(0,0,20,20);
}
Antworten