Seite 1 von 1
Einige Fragen zum Layout
Verfasst: 15. Mai 2007 10:15
von flownfluid
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
Verfasst: 15. Mai 2007 10:51
von caligano
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);
Re: Einige Fragen zum Layout
Verfasst: 15. Mai 2007 11:08
von macman
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.
Verfasst: 15. Mai 2007 11:43
von flownfluid
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
Verfasst: 15. Mai 2007 13:28
von macman
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.
Verfasst: 16. Mai 2007 09:16
von flownfluid
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