Esimerkissä kutsutaan c- kielisen funkion kutsu funkioa Qt:stä. Näin kannattaa tehdä, kun testataan esimerkiksi funktiota, jota ei tulla käyttämään QT:n yhteydessä, vaan esimerkiksi jossain sulautetussa systeemissä.
...
Code Block |
---|
//esitellään testattava funktio
int LaskeKeskiarvo(int Tulo);
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(Laske()));//lisää tämä
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::Laske()//lisää tämä
{
QMessageBox msgBox;
msgBox.setText("Et antanut lukua!");
bool ok=false; //ok:lla testataan oliko syötetty arvo luku
QString teksti; //tekstiruudusta saadaan tekstiä, joten tarvitaan muuttuja tähän tarkoitukseen
teksti= ui->lineEdit->text(); //käydään hakemassa teksti
Tulo=teksti.toInt(&ok,10); //muutetaan teksti kokonaisluvuksi
if(ok==false)//jos annettu kirjaimia, lopetetaan funktio
{
msgBox.exec();
return;
}
TekstiNaytolle+=teksti; //lisätään viimeksi syötetty luku jonon jatkoksi
TekstiNaytolle+=" ";//lisätään tyhjää lukujen väliin
ui->lineEdit_2->setText(TekstiNaytolle);//laiteaan kaikki syötetyt luvut tekstinäytölle
ui->lcdNumber->display(LaskeKeskiarvo(Tulo));// laitetaan keskirvo lcd-näytön arvoksi
}
|
Code Block |
---|
int Vektori[10]={0};
int i=0;
int k=0;
int Summa=0;
int LaskeKeskiarvo(int Tulo)
{
Vektori[i]=Tulo;
i++;
if(i==10)i=0;
Summa=0;
for(k=0;k<10;k++)
{
Summa+=Vektori[k];
}
return Summa/10;
}
|