Programování v QT Creator

Od: Datum: 30.01.15 07:28 odpovědí: 7 změna: 11.02.15 22:57

Zdař lidi,

Umíte někdo programovat v QT? Trochu víc mě to chytlo a začínám se to učit. Byl by tu někdo kdo by mi helpnul? Mám to tady rozepisovat, protože je to dosti složité...


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 02.02.15 14:56
avatar

jj, máte recht. Jedním očkem jste nahlédl do velmi složitého světa. Nevím jestli se něco nezměnilo, ale základem QT je C++. No a ten se musíte naučit sám. Tady žádná rychlometoda neexistuje. Jestli chcete opravdu umět C++, pak nad ním musíte sedět a sedět a sedět a neztrácet víru a trpělivost. Trvá to několik let.

Ohodnoceno: 0x
 
Od: dary®
Datum: 02.02.15 20:17

Ano přeně c++ umim zatim tak na půl. Zkusim se zeptat tady, když mám jednoduchej prográmek:

// Přepište si include do těch závorek.

#include QApplication

#include QPushButton

#include QHBoxLayout

#include QVBoxLayout

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QWidget *window = new QWidget;

window->setWindowTitle("My App");

QPushButton *button1 = new QPushButton("One");

QPushButton *button2 = new QPushButton("two");

QPushButton *button3 = new QPushButton("three");

QHBoxLayout *hlayout = new QHBoxLayout;

hlayout->addWidget(button1); //tady mi nejni jasné proč to nehází chybu

hlayout->addWidget(button2);

hlayout->addWidget(button3);

window->setLayout(hlayout);

window->show();

return app.exec();

}

// Proč void addWidget přijímá parametr QPushButton, když má být:

void addWidget(QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0)

Divné že to přijímá jinej objekt než je v parametrech, unikla mi nějaká teorie v c++? Ď

doplněno 03.02.15 09:29:

Může ten první parametr být šablona?

doplněno 03.02.15 20:57:

Tvůj odkaz nevysvětluje můj dotaz. Jsou tam vysvětleny implicitní parametry a polymorfismus(přetěžování), to je mi všechno jasný, ale nerozumim tomu, proč addWidget přijímá parametr QPushButton , když v deklaraci je QWidget.
Jinak děkuji za pomoc!

doplněno 03.02.15 22:50:

Super, Tak tahle dědičnost mi unikla. Taky programuješ v Creatoru? Začínám se to učit a scháním někoho s kým bych o tom mohl pokecat.

Datum: 02.02.15 22:53

Jen ti unikla teorie. Říká se tomu třeba implicitní parametry funkcí. Dostuduj třeba zde:

http://www.itnetwork.cz/tutor…ametry-funkci-a-polymorfismus

doplněno 03.02.15 20:10:

S tou šablonou nevím, jak to myslíš. Jesli o QT nebo obecně C++. Napiš příklad,

doplněno 03.02.15 22:01:

Jo tak. Myslel jsem, že tě zmátlo, proč je tam méně parametrů, moje chyba... Tady jde o to, že QPushButton má dle dokumentace ( http://qt-project.org/doc/qt-4.8/qpushbutton.html) jako předka QAbstractButton a ten má předka QWidget. Takže ta metoda se k tvému QPushButton chová jako kdyby to byl jen QWidget.

doplněno 04.02.15 17:56:

Kdepak, v QT jsem nikdy nedělal.

Ohodnoceno: 0x
 
Od: dary®
Datum: 11.02.15 18:07

Ještě bych se chtěl zeptat, nemohu přijít jak mám v nové verzi rozběhnout


tam akorád používám knihovnu QGridLayout, QLabel, QLineEdit

doplněno 11.02.15 18:35:

QLabel je taky zděděno přes QWidget tak proč QPushButton jde a QLabel nejde...

Datum: 11.02.15 22:25

Co znamená - nemůžu rozběhnout? Čekal bych, že ti to napíše nějakou chybu.

Ohodnoceno: 0x
 
Od: dary®
Datum: 11.02.15 22:44

jj

doplněno 11.02.15 23:08:

Hups... tak to byl error :P, už to funguje )

Datum: 11.02.15 22:57

Ta hláška ti říká, že třída QGridLayout nezná metodu addWidged. Máš tam překlep - místo addWidged má být addWidget.

doplněno 11.02.15 23:13:

To se stává... Zkus když píšeš nějakou metodu dát ctrl + space. Ve většině vývojových prostředích je to autocomplete a mělo by ti to nabídnout dostupné proměnné/metody. Vyhneš se tak snáze překlepům.

Ohodnoceno: 0x
 

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.