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