Problem mit slider->value()

Verschiedenes zu Qt
Antworten
timo_81
Beiträge: 20
Registriert: 6. September 2008 10:08

Problem mit slider->value()

Beitrag von timo_81 »

Hi,
ich bin relativ neu was c++ und qt angeht, war eher der perl und pythonmensch. Nun habe ich meine ersten Schritte in c++>/Qt4 gewagt und
habe gerade mit einem sliderbeispiel ein Problem.

Ich benutze in diesem Test einen Qslider und eine Qspinbox.
wenn diese einen bestimmten Wert haben soll das untere Label sich ändern.
Das ist nur als kleines Tesprogram gedacht.

Aber noch eine grundlegende Frage vorweg:

Wenn ich etwas (Werte zb. Values etc. speichern möchte)
schreibe ich dann sowas wie:

Code: Alles auswählen

int wert = slider.value(); --kompilerfehler
oder

Code: Alles auswählen


int wert =slider->value();(->lässt sich kompilieren tut aber bei "if" nichts
Hier mal mein gesamter Codeauschnitt:

Code: Alles auswählen


#include <QApplication>
#include <QPushButton>
#include <QVBoxLayout>
#include <QLabel>
#include <QSpinBox>
#include <QSlider>


int main(int argc, char *argv[])
{
	QApplication app(argc,argv);
	QWidget* fenster = new QWidget;
	QVBoxLayout* layout = new QVBoxLayout(fenster);
	
	//neue Widgets
	QSpinBox* spin = new QSpinBox;
	QSlider* slider = new QSlider(Qt::Horizontal); //horizontal/vertikal
	QLabel* label = new QLabel;
	QLabel* label2 = new QLabel;
	
	//Minimum - Maximum
	spin -> setMaximum(100);
	spin -> setMinimum(0);
	
	slider -> setMaximum(100);
	slider -> setMinimum(0);
	
	//Layout
	layout->addWidget(label);
	layout->addWidget(spin);
	layout->addWidget(slider);
	layout->addWidget(label2);
	
	label->setText("Deutschland fragt: Wie arg mag die X den Y?");
	label2->setText("X mag Y gar nicht *schluchz*");
	
	//Signale Slots
	QObject::connect( spin, SIGNAL( valueChanged(int) ),
					 slider, SLOT( setValue(int) ) );
	
	QObject::connect( slider, SIGNAL( valueChanged(int) ),
					 spin, SLOT( setValue(int) ) );
	
	int Wert=slider->value();
	
	if (Wert>=10)
		{
		
			label2->setText("Zehn oder größer!");
		
		}
	fenster -> show();				 
	return app.exec();
					 
					 
}
[/code]
Gruß und vielen Dank -Timo-
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ich empfehle erstmal ein C++ Tutorial, von denen gibt es genug im Netz, und dann mach dir mal Gedanken über den Programmablauf. Du hast ein bißchen Logik im Programm, bevor überhaupt irgendwelche Eingaben möglich sind.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
timo_81
Beiträge: 20
Registriert: 6. September 2008 10:08

Beitrag von timo_81 »

Danke sehr, ok.
Gäbe es für dieses spezifisches Problem einen konkreten Lösungsvorschlag?
Gruß und vielen Dank -Timo-
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Nein. Momentan hast Du ein Signal direkt mit einem Slot verbunden. Damit Du da eine Abfrage zwischen bekommst, brauchst Du einen eigenen Slot, mit dem Du connectest und der dann entsprechend reagiert. Dazu brauchst Du eine eigene Klasse, usw.

Am besten das Qt-Tutorial Schritt für Schritt durch gehen.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Antworten