Seite 1 von 1

Problem mit slider->value()

Verfasst: 7. September 2008 16:21
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]

Verfasst: 8. September 2008 08:00
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.

Verfasst: 8. September 2008 13:46
von timo_81
Danke sehr, ok.
Gäbe es für dieses spezifisches Problem einen konkreten Lösungsvorschlag?

Verfasst: 8. September 2008 13:59
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.