Hallo alle zusammen, ich habe folgende Problem: Programmiertools: Visual Studio 2008 mit qt dazu(qwt). Ich versuche in einem QWTDial einen Text zu schreiben (seh bitte Anhang). In der erste Anhang "Test_dial.png" ist das Dial ohne Text und in der zweite Anhang ""Test_dial_2.png" ist mit dem Text, die ich meine. Meine Frage wie kann ich das machen, um dieses Text so genau geschrieben zu bekommen. Ich habe versucht durch einen Label durch den QT Designer reinzufügen, aber das ist nicht der Richtige Weg. Der Grösse des Dials verändert sich aber leider der Text nicht. Für jeden Tipps bin ich sehr dankbar.
Da wirst Du wohl das QWTDial beerben und das ResizeEvent überladen müssen.
Danke für die Antwort. Das werde ich noch schauen wie ich das ambesten machen kann. Eine andere Frage: Kann ich in der Dial einen Grenzwert setzen z.B: wenn ich die 15 erreiche, der Rand Rot wird (so quasi wie im Auto)? Danke in voraus.
Auch da würd ich sagen - paintEvent überladen und in Abhängigkeit des aktuellen Wertes mit QWidget::setPalette() die gewünschte Farbe setzen. Wenn Du da was spezielles haben willst, wirst Du aber wohl an den Qwt-code ran müssen, siehe drawContents().
Hast du vielleicht einen Beispiel oder einen Tutorial ? Danke in voraus
So in der Art...
1 | class MyDial: public QWTDial |
2 | {
|
3 | public:
|
4 | ...
|
5 | |
6 | protected:
|
7 | void paintEvent(QPaintEvent *e); |
8 | };
|
9 | |
10 | void MyDial::paintEvent(QPaintEvent *e); |
11 | {
|
12 | // Dein code...
|
13 | // z.B.:
|
14 | if(...)// Bedingung für andere Farbe |
15 | {
|
16 | QPalette p = this->palette(); |
17 | p.setColor(QPalette::WindowText, Qt::red); |
18 | this->setPalette(p); |
19 | }
|
20 | |
21 | QWTDial::paintEvent(e); |
22 | }
|
Hallo, @pks Danke danke für die Tipps. Es hat mich sehr viel geholfen. Mit der Farben habe ich hin gekriegt. Nur mit der oben gennate Problem komme ich nicht weiter. Ich weiss es nicht wie soll ich den Tabs mit dem Text setzen. Das QwtDial habe ich mit dem Designer gemacht.. Wenn du mir noch einen Tipps gibt, bin ich sehr dankbar. Danke in Voraus.
Hab ich das richtig verstanden - Du hast ein Label eingefügt, aber sobald die Größe des Dial geändert wird passt die Position nicht mehr? Ich nehme an Du möchtest, dass sich Größe und Postion des Textes bei Größenänderung automatisch mit ändern? Dann würde ich vielleicht den Text eher als Bild ins Label einfügen (QLabel->setPixmap()). Damit das Label seinen Inhalt automatisch skaliert musst Du setScaledContents(true) setzen. Im ResizeEvent dein Dial müsstest Du dann in Abhängigkeit der Dial-Größe die Größe und Postion des Labels berechnen un setzen.
Hallo und danke für die Antwort. Ich habe versucht einen Label in der Dial reinzusetzen aber sobald ich die Grösse sich ändert, ist der Label nicht mehr zentriert. Ich möchte dieses Label nicht mehr mit dem Designer reinfüfen sondern Codetechnik. Die Frage ist : wie mache ich das am besten. Ich stehe vor dieses Problem seit 2 Tage und komme nicht weiter ...
An sich sollte es doch auch möglich sein, dem QwtDial ein Layout zu geben, wo man dann sein(e) Childwidget(s) und ein paar Spacer einfügt. Um das passende Verschieben kümmert sich dann das Layout.
Rolf Magnus schrieb: > An sich sollte es doch auch möglich sein, dem QwtDial ein Layout zu > geben, wo man dann sein(e) Childwidget(s) und ein paar Spacer einfügt. > Um das passende Verschieben kümmert sich dann das Layout. Stimmt, das wäre wohl der Einfachste Weg. @Maxim Ein kleines Beispielprojekt wäre hilfreich...
Guten Morgen und danke an alle. Mit einem kleines Beispielprojeckt klappt es. Danke noch mal
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.