[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 1014: Undefined array key 3
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 1014: Undefined array key 3
qtforum.de • Calculatorprogramierung mit Checkbox Implementierung
Seite 1 von 1

Calculatorprogramierung mit Checkbox Implementierung

Verfasst: 11. Dezember 2009 15:38
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

Verfasst: 11. Dezember 2009 15:48
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.

Verfasst: 11. Dezember 2009 15:56
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^^

Verfasst: 14. Dezember 2009 08:01
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