Harjoituksessa tutkitaan kuinka sovellukseen lisätään uusi Form ja kuinka tietoa voidaan välittää formilta toiselle.
Uusi ikkuna voidaan avata metodeilla show, open ja exec. Näiden toiminta on seuraava
#include "secondform.h" #include "thirdform.h"
SecondForm *sf=new SecondForm(this); sf->open();Edellä SecondFormille annetaan argumenttina this, joka siis viittaa MainWindow luokan olioon. Tämän ansiosta oliota sf ei tarvitse tuhota, vaan se tuhoutuu automaattisesti.
explicit SecondForm(QString name, QWidget *parent = nullptr);Sanan SecondForm päällä Refactor->Apply Function Signature Changes (jolloin muutos tehdään myös cpp-tiedostoon)
ui->labelInfo->setText(name);
SecondForm *objectSecondForm=new SecondForm("Jussi",this);
objectSecondForm->open();
void ThirdForm::setNameFromMain(const QString &newNameFromMain)
{
nameFromMain = newNameFromMain;
ui->labelInfo->setText(nameFromMain);
}
ThirdForm *objectThirdForm=new ThirdForm(this);
objectThirdForm->setNameFromMain("Maija");
objectThirdForm->show();
Jos sinun pitäisi saada uudesta formista saatu data näkymään alkuperäisessä formissa, voit käyttää signal-slot systeemiä tai singleton-luokkaa