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í
×
    včera 23:33 | Zajímavý článek

    Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu lednový souhrn novinek.

    Ladislav Hagara | Komentářů: 0
    včera 22:55 | Pozvánky

    Baví vás bastlení, fyzika, IT a nebo prostě cokoliv technického? Proseděli jste celé Vánoce v záři obrazovky počítače a nebo jste o tom alespoň snili? Chcete se pochlubit technickými vánočními dárky? Pak doražte na Virtuální Bastlírnu - online pokec (nejen) techniků a bastlířů!

    … více »
    bkralik | Komentářů: 0
    včera 22:33 | Nová verze

    Desktopové prostředí Enlightenment bylo vydáno ve verzi 0.27.0, provázejí ho knihovny EFL 1.28. Jde o převážně opravné vydání opět po roce.

    Fluttershy, yay! | Komentářů: 2
    včera 01:22 | Nová verze

    Lazygit byl vydán ve verzi 0.45.0. Jedná se o TUI (Text User Interface) nadstavbu nad gitem.

    Ladislav Hagara | Komentářů: 0
    11.1. 17:33 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    11.1. 17:22 | Nová verze

    Byla vydána nová verze 2.48.0 distribuovaného systému správy verzí Git. Přispělo 93 vývojářů, z toho 35 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    11.1. 17:11 | Nová verze

    Byl vydán Debian 12.9, tj. devátá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    11.1. 05:00 | Komunita

    Před dvanácti lety, ve svých šestadvaceti letech, navždy odešel Aaron Swartz, výjimečný americký hacker (programátor), spisovatel, archivář, politický organizátor a internetový aktivista. Aaron Swartz založil Demand Progress, spolupracoval na projektech Open Library, Internet Archive a Reddit. Ve svých čtrnácti se podílel na specifikaci RSS 1.0. Vytvořil webový framework web.py, pracoval na tor2web a rozšíření HTTPS Everywhere

    … více »
    Fluttershy, yay! | Komentářů: 3
    10.1. 17:22 | Nová verze

    Byla vydána nová major verze 3.20.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.

    Ladislav Hagara | Komentářů: 2
    10.1. 05:33 | IT novinky

    Na Kickstarteru byla spuštěna plánovaná kampaň na open source modulární přenosné mini počítače Pilet 5 a Pilet 7 postavené na Raspberry Pi 5. Jejich cena je 215 a 202 amerických dolarů.

    Ladislav Hagara | Komentářů: 2
    Rozcestník

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

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

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