Alles rund um die Programmierung mit Qt
flownfluid
Beiträge: 80 Registriert: 6. Januar 2005 12:54
Beitrag
von flownfluid » 15. Mai 2007 10:15
Hallo zusammen,
ich habe da ein paar kleine, denke relativ einfache Probleme:
ProgressBar
Wie kann man die Farbe des "Progress" verändern?
Habs mit
Code: Alles auswählen
QPalette o_myPalette;
o_myPalette.setColor(Qt::Window , Qt::red) oder
o_myPalette.setColor(Qt::Base , Qt::red)
op_progressBar->setPalette(o_myPalette)
aber leider passierte nichts.
QCheckBox
Gibt es irgendwie eine Möglichkeit das man den Button nicht bedienen kann sondern nur als Anzeige dient?
Vielen Dank
caligano
Beiträge: 126 Registriert: 19. August 2006 15:33
Beitrag
von caligano » 15. Mai 2007 10:51
Versuchs mal damit:
Code: Alles auswählen
QPalette pal = progress->palette();
// Set the bar red
pal.setColor(QColorGroup::Highlight, QColor("red"));
// Set the percentage text yellow
pal.setColor(QColorGroup::Foreground, QColor("yellow"));
// Set the background green
pal.setColor(QColorGroup::Background, QColor("green"));
progress->setPalette(pal);
macman
Beiträge: 1738 Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:
Beitrag
von macman » 15. Mai 2007 11:08
flownfluid hat geschrieben: QCheckBox
Gibt es irgendwie eine Möglichkeit das man den Button nicht bedienen kann sondern nur als Anzeige dient?
Ja, mehrere. Du könntest QCheckBox überschreiben und die Klicks abfangen. Du kannst auch die Checkbox auf disabled setzen und die Palette so anpassen, das sie disabled genauso aussieht wie enabled.
flownfluid
Beiträge: 80 Registriert: 6. Januar 2005 12:54
Beitrag
von flownfluid » 15. Mai 2007 11:43
Hi,
danke caligano hat prima funktioniert.
macman
kannst du mir das mal erklären wie ich das machen? kenne mich da eben noch nicht so gut aus
vielen dank
macman
Beiträge: 1738 Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:
Beitrag
von macman » 15. Mai 2007 13:28
flownfluid hat geschrieben: kannst du mir das mal erklären wie ich das machen? kenne mich da eben noch nicht so gut aus
MyCheckBox.h
Code: Alles auswählen
#ifndef MYCHECKBOX_H
#define MYCHECKBOX_H
#include <QCheckBox>
class MyCheckBox : public QCheckBox
{
Q_OBJECT
public:
MyCheckBox(QWidget *parent);
~MyCheckBox();
private:
void mousePressEvent(QMouseEvent* e);
};
#endif // MYCHECKBOX_H
MyCheckBox.cpp
Code: Alles auswählen
#include "mycheckbox.h"
MyCheckBox::MyCheckBox(QWidget *parent)
: QCheckBox(parent)
{
}
MyCheckBox::~MyCheckBox()
{
}
void MyCheckBox::mousePressEvent(QMouseEvent* e)
{
}
mousePressEvent ist überschrieben und leitet die Events nicht an die Basisklasse weiter. Folge sind Klicks ins Nirwana.
flownfluid
Beiträge: 80 Registriert: 6. Januar 2005 12:54
Beitrag
von flownfluid » 16. Mai 2007 09:16
Vielen Dank
um die QCheckbox wirklich nur als Anzeiger zu benützen muss man folgende Methoden überschreiben:
mousePressEvent
mouseMoveEvent
keyPressEvent
Gruss und nochmals vielen Dank