Nejste přihlášen/a.

Přihlásit se do poradny

 

Programování v QT Creator

Od: dary* odpovědí: 7 změna:

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é...

 

 

7 odpovědí na otázku
Řazeno dle hodnocení

 

 

figurek*
hodnocení

0x

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.

dary*
hodnocení

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

intmain(intargc,char*argv[])

{

QApplicationapp(argc,argv);

QWidget*window=newQWidget;

window->setWindowTitle("MyApp");

QPushButton*button1=newQPushButton("One");

QPushButton*button2=newQPushButton("two");

QPushButton*button3=newQPushButton("three");

QHBoxLayout*hlayout=newQHBoxLayout;

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

hlayout->addWidget(button2);

hlayout->addWidget(button3);

window->setLayout(hlayout);

window->show();

returnapp.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.

charlies*

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

itnetwork.cz/...

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 qt-project.org/... 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.

 

dary*
hodnocení

0x

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...

charlies*

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

dary*

jj

doplněno 11.02.15 23:08:

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

Programování v QT Creator
charlies*

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.

 

 


 

 

 

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.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]