Seite 1 von 1
Eine runde Sache :-) QLabel
Verfasst: 23. Juni 2006 09:11
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
Re: Eine runde Sache :-) QLabel
Verfasst: 23. Juni 2006 09:57
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

. Im Quellcode deines Tools/Progammes kannst
du dann zum QLabel sagen, verstecke oder zeige dich.

Verfasst: 23. Juni 2006 10:04
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
Verfasst: 23. Juni 2006 11:18
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());
}
};
Verfasst: 29. Juni 2006 08:15
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
Verfasst: 18. Juli 2006 11:28
von Maik
hi, also es klappt nicht so wie ich will. gibt aber bestimmt einen grund dafür
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);
}