Einige Fragen zum Layout

Alles rund um die Programmierung mit Qt
Antworten
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Einige Fragen zum Layout

Beitrag 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
caligano
Beiträge: 126
Registriert: 19. August 2006 15:33

Beitrag 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);
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Einige Fragen zum Layout

Beitrag 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.
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Beitrag 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
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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.
flownfluid
Beiträge: 80
Registriert: 6. Januar 2005 12:54

Beitrag 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
Antworten