Qt4 - prosty program

Galo

Użytkownik
Dołączył
Kwiecień 17, 2009
Posty
2
Witam,
na wstępie powiem iż dopiero zaczynam zabawę z QT4, chciałbym Was prosić o pomoc w dokończeniu programu:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>class MojeOkno : public QWidget {
Q_OBJECT
public:
MojeOkno();
private:
QPushButton *przycisk;
QLineEdit *bok_1;
QLineEdit *bok_2;
QLineEdit *wynik;
private slots:
void oblicz();

};
MojeOkno::MojeOkno() {
setMinimumSize(300,300);
setMaximumSize(500,400);
setWindowTitle("Program");
setGeometry(420,300,300,200);
bok_1=new QLineEdit(this);
bok_1->setGeometry(10,20,100,40);
bok_2=new QLineEdit(this);
bok_2->setGeometry(10,80,100,40);
przycisk=new QPushButton("Oblicz", this);
przycisk->setGeometry(10,140,100,40);
przycisk->setFont(QFont("Verdana", 10, QFont::Light,true));
wynik=new QLineEdit(this);
wynik->setGeometry(10,200,100,40);
}
int main(int argc, char **argv) {
QApplication a(argc, argv);
MojeOkno Nowe;
Nowe.show();
a.exec();
}</div>
Chciałbym aby program wyliczał pole prostokąta Czyli w QLineEdit bok_1 podawało by się długość boku pierwszego w QLineEdit bok_2 długość boku drugiego a w QLineEdit wynik pokazywało się obliczone pole prostokąta... Jednak nie wiem jak dokończyć ten program aby działał więc proszę o pomoc
 

sinis

Użytkownik
Dołączył
Wrzesień 3, 2006
Posty
958
Dorzuć do okna jednego buttona i connectnij go ze slotem:
Kod:
void MojeOkno::oblicz()
{
 int a = atoi(bok_1->text().toStdString().c_str());
 int b = atoi(bok_2->text().toStdString().c_str());
 wynik->setText(QString::number(a*b));
}

Nie jest to trudne, także powinieneś sobie poradzić.
 

skynet1248

Użytkownik
Dołączył
Czerwiec 21, 2008
Posty
41
<div class='quotetop'>CYTAT(sinis @ 17.04.2009, 19:28) <{POST_SNAPBACK}></div>
Dorzuć do okna jednego buttona i connectnij go ze slotem:
Kod:
void MojeOkno::oblicz()
{
 int a = atoi(bok_1->text().toStdString().c_str());
 int b = atoi(bok_2->text().toStdString().c_str());
 wynik->setText(QString::number(a*b));
}
[/b]


lepiej zastosować konwersję .toInt
Kod:
void MojeOkno::oblicz()
{
    int a = bok_1->text().toInt();
    int b = bok_2->text().toInt();
    wynik->setText(QString::number(a*b));
}

poza tym wypróbuj QtCreatora, wbudowany help i auto-uzupełnianie powinny ci pomóc w nauce QT4.

Pozdrawiam
 

Galo

Użytkownik
Dołączył
Kwiecień 17, 2009
Posty
2
Zrobiłem tak jak powiedział skynet1248, projekt podzieliłem na 3 pliki main.cpp oblicz.h oraz oblicz.cpp jednak program się nie kompiluje:

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>||=== teoria, Debug ===|
obj\Debug\oblicz.o||In function `ZN8MojeOknoC2Ev':|
D:\Nauka QT\teoria\oblicz.cpp|3|undefined reference to `vtable for MojeOkno'|
D:\Nauka QT\teoria\oblicz.cpp|3|undefined reference to `vtable for MojeOkno'|
obj\Debug\oblicz.o||In function `ZN8MojeOknoC1Ev':|
D:\Nauka QT\teoria\oblicz.cpp|3|undefined reference to `vtable for MojeOkno'|
D:\Nauka QT\teoria\oblicz.cpp|3|undefined reference to `vtable for MojeOkno'|
obj\Debug\main.o||In function `ZSt17__verify_groupingPKcjRKSs':|
D:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\locale_facets.tcc|2494|undefined reference to `vtable for MojeOkno'|
obj\Debug\main.o:D:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\include\c++\3.4.2\bits\locale_facets.tcc|2495|more undefined references to `vtable for MojeOkno' follow|
||=== Build finished: 6 errors, 0 warnings ===|</div>
 
Do góry Bottom