Calculatorprogramierung mit Checkbox Implementierung

Alles rund um die Programmierung mit Qt
Antworten
tce2abt
Beiträge: 5
Registriert: 8. Dezember 2009 11:41
Wohnort: Heilbronn
Kontaktdaten:

Calculatorprogramierung mit Checkbox Implementierung

Beitrag von tce2abt »

Hallo alle zusammen..

Mein Name ist Erik , ich steige gerade ins Thema Qt ein. In Rahmen meiner Einarbeitungsphase habe folgendes Programm bearbeitet:

Header-Datei:

#ifndef CALCULATORFORM_H
#define CALCULATORFORM_H

//! [0]
#include "ui_calculatorform.h"
//! [0]

//! [1]
class CalculatorForm : public QWidget
{
Q_OBJECT

public:
CalculatorForm(QWidget *parent = 0);

private slots:
void on_inputSpinBox1_valueChanged(int value);
void on_inputSpinBox2_valueChanged(int value);

private:
Ui::CalculatorForm ui;
};
//! [1]

#endif


Quellcode:

1. Calculatorform.cpp

#include <QtGui>

#include "calculatorform.h"

//! [0]
CalculatorForm::CalculatorForm(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
//! [0]

//! [1]
void CalculatorForm::on_inputSpinBox1_valueChanged(int value)
{
ui.outputWidget->setText(QString::number(value - ui.inputSpinBox2->value()));
}
//! [1]

//! [2]
void CalculatorForm::on_inputSpinBox2_valueChanged(int value)
{
ui.outputWidget->setText(QString::number(value - ui.inputSpinBox1->value()));
}
//! [2]


und
2. main.cpp:

#include <QApplication>

#include "calculatorform.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
CalculatorForm calculator;
calculator.show();
return app.exec();

}


Dieses Programm ist ein Art Substrahierer und ich möchte jetzt folgende Erweiterung machen (und da brauche ich bitte eure Tipps): Ich möchte durch eine sogenannte CheckBox der Substrahiervorgang steuern. D.h ich möchte diese Checkbox so implementieren, dass der Substraktionsvorgang funktioniert, wenn ich es aktiviere.

Meine Frage wäre :wie kann ich es am geschicktesten diese QCheckBox-Klasse am besten Implementieren ?

Ich danke euch im Voraus für eure Antworten.

Gruß
Erik
:D
Cogito Ergosum
spatro
Beiträge: 46
Registriert: 18. Juni 2008 10:54

Beitrag von spatro »

Wenn ich das richtig verstehe willst du eine CheckBox machen, die angibt, ob bei einer Änderung subtrahiert werden soll oder nicht, oder?

Dazu müßtest du nur im Designer eine Checkbox erstellen und dann i deinen beiden Slots abfragen, ob die Checkbox aktiviert ist.Also so ungefähr:

Code: Alles auswählen

void CalculatorForm::on_inputSpinBox1_valueChanged(int value)
{
if(ui.checkBox->isChecked()) ui.outputWidget->setText(QString::number(value - ui.inputSpinBox2->value()));
} 
und wenn du willst, dass auch bei einer Änderung des Zustandes der CheckBox neu berechnet wird, kannst du einfach das StateChanged(int) Signal der Checkbox verwenden.
drizzt
Beiträge: 29
Registriert: 9. Oktober 2009 13:37

Beitrag von drizzt »

was heißt denn steuern?

das die berechnung ausgeführt wird, wenn quasi der zustand checked = true ist?

dann schreib dir nen SLOT:
z.b.
void checkBox_is_checked(int ckecked){ if(checked == Qt::Checked) berechne iwas... }

und verbinde mit nem checkBox signal

connect(checkBox,SIGNAL(stateChanged ( int )this,SLOT(checkBox_is_Checked(int)));

edit: da war wohl jemand schneller^^
tce2abt
Beiträge: 5
Registriert: 8. Dezember 2009 11:41
Wohnort: Heilbronn
Kontaktdaten:

Beitrag von tce2abt »

Hallo spatro und drizzt,

zuerst sorry für die späte Antwort. Ich wollte für eure tipps nur danke sagen. Es hat mich sehr weitergebracht. Jetzt verstehe ich einiges.

Nochmals Danke

Erik
Cogito Ergosum
Antworten