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 *objectSeconfForm=new SecondForm("Jussi",this); objectSeconfForm->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