abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 0
dnes 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
dnes 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
včera 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
včera 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 6
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 10
20.1. 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (4%)
 (11%)
Celkem 371 hlasů
 Komentářů: 25, poslední 21.1. 13:34
Rozcestník
Reklama

Dotaz: Qt - začátečník

1.12.2012 17:32 netusim
Qt - začátečník
Přečteno: 360×

Dobrý den, Chtěl bych se zeptat, jaký je rozdíl v Qtčku mezi tím, když někde použiji hello.setText("Hello world!"); hello.show; a třeba QPushButton* button = new QPushButton("Quit"); button->show(); Potřeboval bych nějak udělat tlačítko, které půjde normálně zobrazit přes tlacitko.show. Normálně s hello.button nebo něčím podobným. Doufám, že se mi podařilo vysvětlit, co jsem myslel...

Odpovědi

1.12.2012 17:33 netusim
Rozbalit Rozbalit vše Re: Qt - začátečník
Popřípadě jak to kombinovat, nebo jak třeba udělat, aby to při zmáčknutí tlačítka udělalo printf...
1.12.2012 19:55 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Qt - začátečník
Mně - nepodařilo.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Petr Bravenec avatar 1.12.2012 21:36 Petr Bravenec | skóre: 43 | blog: Bravenec
Rozbalit Rozbalit vše Re: Qt - začátečník

Mezi těmi příklady je rozdíl docela veliký:

hello.setText("Hello world!"); hello.show;
vytvoří a zobrazí tlačítko s nápisem "Hello world!", naproti tomu kus kódu
QPushButton* button = new QPushButton("Quit"); button->show();

vytvoří a zobrazí téměř, nikoli však zcela nepodobné tlačítko, tentokrát s nápisem "Quit". Cítíte ten rozdíl?

K dodatečné otázce: Chcete-li v Qt na "kliknutí" vyvolat nějakou akci, vytvořte si ve svém formuláři slot a připojte signál "clicled()" tlačítka na tento slot, například:

class FORMULAR : public QWidget, private Ui::FORMULAR {
    Q_OBJECT
  public:
    FORMULAR(QWidget *parent);

  private slots:
    void    tlacitkoQuitStisteno();
};

void FORMULAR::FORMULAR(QWidget parent) : Ui::FORMULAR(parent) {
    setupUi(this);
    connect(buttonQuit, SIGNAL(clicked()), this, SLOT(tlacitkoQuitStisteno()));
}

void FORMULAR::tlacitkoQuitStisteno() {
    qDebug() << "FORMULAR::tlacitkoQuitStisteno()";
}

Formulář doporučuji naklikat programem designer a použít qmake - při překladu se vám vytvoří soubor ui_formular.h se zdrojovým kódem v c++ v jmenném prostoru Ui. (Můžete vše naklikat i v programu qtcreator, ale přístup zcela odděleného formuláře vytvořeného metodou klik-klik-klik a vlastního zdrojového souboru se mi líbí víc (možná jsem jen nepochopil filozofii qtcreatoru).). Ten si pak můžete snadno vložit do hlavičkového souboru vlastní třídy a odvodit z ní vlastní widget. Dokumentace ke Qt se hemží podobnými příklady.

http://doc.qt.digia.com/qt/signalsandslots.html

Prostudujte si dokumentaci k objektu QWidget:

http://doc.qt.digia.com/4.7/qwidget.html

Všimněte si, že v úvodu je výpis všech metod, potom výpis slotů (tj. "příjemců" signálů) a pak i výpis všech signálů (tj. "vysílačů" signálů). Každý widget má různé signály a různé sloty, v dokumentaci je vždy vše podrobně popsáno.

U svých tříd odvozených z třídy QObject si můžete vytvářet vlastní signály i sloty a propojovat je (i mezi objekty i mezi různými vlákny) metodou connect() (metoda třídy QObject):

http://doc.qt.digia.com/4.7/qobject.html#connect

Stačí to?

Petr Bravenec - Hobrasoft s.r.o.
1.12.2012 21:39 Ariczek | skóre: 4
Rozbalit Rozbalit vše Re: Qt - začátečník
budu trochu vařit z vody, z dotazu se to poznat nedá...

hello.show; -- přistoupení k proměnné show objektu hello. button->show(); -- zavolání metody show() na ukazateli na objekt button.

hello a button jsou instance nějaké třídy či struktury. Použití . nebo -> závisí na tom, zda mám proměnnou přímo nebo přes ukazatel (ta * v zápisu u button). Konečně příkaz hello.show; nedělá nic - nahradí se hodnotou proměnné show, ale ta se nikam neuloží.
Petr Bravenec avatar 1.12.2012 21:47 Petr Bravenec | skóre: 43 | blog: Bravenec
Rozbalit Rozbalit vše Re: Qt - začátečník
Myslíte, že dotyčný potřebuje vysvětlit rozdíl mezi hodnotou a ukazatelem? No to potěš koště, potom bych doporučoval navštívit nejbližší knihkupectví a koupit "C++ pro začátečníky". Z toho dotazu to moc není poznat...
Petr Bravenec - Hobrasoft s.r.o.
2.12.2012 09:19 netusim
Rozbalit Rozbalit vše Re: Qt - začátečník
Asi jsem fakt blbej, ale chápu správně, že teda mám udělat funkci a tu pak dát do slotu? (prostě přiřadit jí tomu tlačítku?
A nejde nějak udělat, aby jsem u toho tlačítka dal hodnotu natvrdo a nemusel používat pointery?
Omlouvám se, že otravuju...
2.12.2012 09:54 Roman Došek | skóre: 17 | blog: flare
Rozbalit Rozbalit vše Re: Qt - začátečník
Možná zkus radši přeformulovat svoji otázku, protože z té současné se fakt nedá odvodit ani na co se ptáš, ani čeho chceš dosáhnout :-)
2.12.2012 10:29 netusim
Rozbalit Rozbalit vše Re: Qt - začátečník
Chtěl bych udělat aplikaci, kde bude napsáno hallo world a pod tím bude tlačítko printf na které když se zmáčkne, tak to vypíše do terminálu v Qt creatoru hallo world.
Petr Bravenec avatar 2.12.2012 10:53 Petr Bravenec | skóre: 43 | blog: Bravenec
Rozbalit Rozbalit vše Re: Qt - začátečník
Příloha:
V dokumentaci Qt je velká spousta příkladů. Příklady by měly být i součástí instalačního balíku, případně zdrojových kódů.

Můžete se taky podívat na přibalený příklad, vytvořený podle zadání. Přeložíte a spustíte jej takto:
tar -xzvf helloworld.tgz
cd helloworld
qmake
make
bin/helloworld
Když se pak zmáčknete na tlačítko printf, na standardní chybový výstup se vypíše text "hallo world". Pokud chcete vypsat text do terminálu v Qt creatoru, pusťe si to v Qt creatoru.

Petr Bravenec - Hobrasoft s.r.o.
2.12.2012 12:31 netusim
Rozbalit Rozbalit vše Re: Qt - začátečník
Děkuji, teda je to složitější, než jsem myslel, ale už jsem to pochopil. Ještě bych se chtěl zeptat, proč mi to nejde když jsem to otevřel zkompilovat přímo z Qt creatoru tou zelenou šipečkou vlevo?
Petr Bravenec avatar 2.12.2012 12:39 Petr Bravenec | skóre: 43 | blog: Bravenec
Rozbalit Rozbalit vše Re: Qt - začátečník
Nevím. Qt creator nepoužívám. Ani jsem nevěděl, že má vlevo zelenou šipečku.
Petr Bravenec - Hobrasoft s.r.o.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.