Kirjoittaja Aihe: Qt Creatorilla sovellus?  (Luettu 4562 kertaa)

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Qt Creatorilla sovellus?
« : 02.03.15 - klo:12.32 »
Hei

Tässä yritän päästä kärryille. Qt Creator asennettu. Esimerkeistä olen kokeillut kahta. Kokeilu kopioi esimerkin käyttäjän hakemistoon ja avaa sen. OK tähän asti. Kun ajan run komennon build menusta, esimerkkisovellus kyllä käynnistyy, mutta miten saan itsenäisesti toimivan sovelluksen aikaiseksi? Projektihakemistoon tulee kyllä esim. Calculator ajettavana sovelluksena, mutta avattaessa aukeaa vain tyhjä valkoinen ikkuna. Samoin kävi kokeillessa Dialcontrol-esimerkkisovellusta. Missä menee pieleen mulla???

Vilkaisin yhtä ohjetta alla olevasta linkistä, muttei mitään apua mulle. Ei mitään Kit Selector-ikkunaakaan löydy. Alla tässä 32-bittinen 12.04.

http://qt-project.org/doc/qtcreator-2.7/creator-build-example-application.html

Innostuin tästä kehitysympäristöstä nyt siksi, että siihen saa kolmannen osapuolen palikan basicia  ;) varten (Basic for Qt), kun C++ en enää lähde opettelemaan. Visual Basic ennestään ollut paljonkin käytössä.
« Viimeksi muokattu: 02.03.15 - klo:12.40 kirjoittanut New_user »

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #1 : 02.03.15 - klo:13.58 »
Vastaanpa itselleni, että nuo yritelmäni eivät olleetkaan tyyppiä sovellus. Parista muusta, jossa oli oikein ikkuna, syntyi toimiva ajokelpoinen ja user interfacen omaava pikku sovellus.

Nyt seuraava kysymys meneekin, kun Ubuntussa ajettava versio syntyy noin, niin voiko kääntää suoraan tästä myös Windowsiin?

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #2 : 03.03.15 - klo:01.18 »
Nyt seuraava kysymys meneekin, kun Ubuntussa ajettava versio syntyy noin, niin voiko kääntää suoraan tästä myös Windowsiin?

Erikseen asennettavalla cross-compilerilla (MinGW:n Linux-versiolla) onnistuu, mutta käytännön kehitystyön kannalta lienee helpompaa asentaa kehitysympäristö oikeaan tai virtuaaliseen Windows-asennukseen.

Katso myös Win-builds.

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #3 : 03.03.15 - klo:09.30 »
Tänks. Jatkan kyselemistä. Mitenkäs tuolla QT Creatorilla tehdään stand-alone binääriä Linuxiin, ja onko se yleensä mahdollista? Kokeilukäännökset toimivat vain koneessa jossa on QT Creator asennettuna, eli sovellus jää riippumaan jostakin/joistakin kirjastoista. Jossain näin juttua staattisesta linkityksestä, mutta en ole missään nähnyt mitään selkokielistä ohjetta, miten pitää menetellä, jotta itsenäisesti toimiva sovellus saadaan aikaan. Kiinnostaisi Linuxiinkin ohjelmoida. Asennuspaketin teko on sekin hämärän peitossa. Kaikkea apua siis tarvittaisiin.

matsukan

  • Käyttäjä
  • Viestejä: 2148
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #4 : 03.03.15 - klo:10.28 »
Mitä tarkoitat sanalla "stand-alone binääreitä" ?

Voit tehdä Qt creatorilla joko Qt pohjaisia sovelluksia taikka esim vaikka boost kirjastoa käyttäviä.

Ohjeita paketointiin esim Debian pohjaisiin koneisiin löydät täältä :

http://packaging.ubuntu.com/html/packaging-new-software.html

ja

http://ubuntuforums.org/showthread.php?t=910717


edit:

statical linking:

http://www.qtcentre.org/wiki/index.php?title=Building_static_Qt_on_Linux

http://www.qtcentre.org/wiki/index.php?title=Building_static_applications
« Viimeksi muokattu: 03.03.15 - klo:10.52 kirjoittanut syrtek66 »
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #5 : 03.03.15 - klo:10.57 »
Mitä tarkoitat sanalla "stand-alone binääreitä" ?

Dos/Windows puolella on käsite .exe-tiedosto, joka voi olla sellainen, ettei se tarvitse mitään apukirjastoja tuekseen.
Samoin olen tottunut siihen, että käännös ja asennuspaketti syntyvät napin painalluksella ohjelmointiympäristössä. Nykyinen asiaintila ei ainakaan tee ohjelmoinnin aloittamista Linuxille helpoksi.  Mutta eteenpäin, sanoi mummo lumihangessa  ;)

matsukan

  • Käyttäjä
  • Viestejä: 2148
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #6 : 03.03.15 - klo:13.05 »
Lainaus
Dos/Windows puolella on käsite .exe-tiedosto, joka voi olla sellainen, ettei se tarvitse mitään apukirjastoja tuekseen.

 :P

Apukirjastojen käyttö ei ole pakollista edes linux:ssa. Mutta käytännön syistä ei kannata sisällyttää koodia jota ei ole itse tuottanut. Windowsissa taasen  käytetään paljon Win API kirjastoja joita käytetään esim C++ runtime:n kautta.
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #7 : 03.03.15 - klo:15.05 »
Kiitos

Huonoja uutisia muuten. Tuo Basic for Qt -zydeemi, siis Kbasicin jälkeläinen toimii kyllä, mutta deploy-toiminto vaatisi rekisteröidyn version. Nyt on kuitenkin niin, että sitäkään ei taida saada. Kehittäjästä, Bernd Noetscheristä ei kaiketikaan ole mitään(?) tietoa vuoden 2012 jälkeen. Jostain luin, että jotkut ovat maksaneet tuon jälkeen, mutta koskaan ei ole mitään vastausta kuulunut. Onkohan niin, että kaverille on jotain sattunut? Foorumikin vaikuttaa aika kuolleelta, eikä sinne voi rekisteröityä enää edes kysymään.

Nyt siis ei ole mitään tietoa, miten noita sovelluksia voisi siirtää muille koneille, muuta kuin asentamalla Qt:n tai jotain osia siitä (mitä?) niillekin. Qt Creatorilla tehdyt tarvitsevat paitsi kirjastoja, kuin myös jotain plugineja. Kääntäminen tuolla Basic for Qt -ympäristössä tuottaa kyllä build-hakemiston jossa on tuhoton määrä, kaiketikin sorsaa ym. mutta mitä tarvittaisiin asennuspakettiin, se on sitten toinen juttu. Ei mitään käsitystä. Basic for Qt siis tekee kaiken ensin C++ -koodiksi, josta sitten kääntyy itse sovellus.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #8 : 03.03.15 - klo:20.00 »
Huonoja uutisia muuten. Tuo Basic for Qt -zydeemi, siis Kbasicin jälkeläinen toimii kyllä, mutta deploy-toiminto vaatisi rekisteröidyn version. Nyt on kuitenkin niin, että sitäkään ei taida saada. Kehittäjästä, Bernd Noetscheristä ei kaiketikaan ole mitään(?) tietoa vuoden 2012 jälkeen. Jostain luin, että jotkut ovat maksaneet tuon jälkeen, mutta koskaan ei ole mitään vastausta kuulunut. Onkohan niin, että kaverille on jotain sattunut? Foorumikin vaikuttaa aika kuolleelta, eikä sinne voi rekisteröityä enää edes kysymään.

Ei siis kuulosta pidemmän päälle varteenotettavalta kehitysympäristöltä. Qt:tä voi käyttää Pythonin kanssa, jos et halua opiskella C++:aa. Käyttöliittymän voi silloinkin suunnitella Qt Creatorilla. Python-ohjelman deployaus Windows-ympäristössä on tosin vielä yhtä pykälää hankalampaa, kun joudut paketoimaan mukaan sekä Qt:n että Pythonin.


Nyt siis ei ole mitään tietoa, miten noita sovelluksia voisi siirtää muille koneille, muuta kuin asentamalla Qt:n tai jotain osia siitä (mitä?) niillekin.

Kuten yleensäkin C/C++-kehityksessä, ohjelmoijan on selvitettävä, mistä kirjastoista binääri riippuu ja paketoida ne mukaan tai määritellä riippuvuuksiksi. Linux-jakelut tarjoavat tarvittavat Qt-paketit suoraan virallisista repositorioista, joten niitä ei yleensä ole syytä kääntää staattisesti tai paketoida ohjelman mukaan.

Voit tarkistaa binäärin kirjastoriippuvuudet komennolla:

Koodia: [Valitse]
ldd binääri
Esimerkki Qt-ohjelman paketoinnista Debian-pohjaiseen jakeluun (kuten Ubuntuun):
https://bhavyanshu.me/how-to-make-debian-packages-for-qt-c-based-applications/11/10/2014/


Kääntäminen tuolla Basic for Qt -ympäristössä tuottaa kyllä build-hakemiston jossa on tuhoton määrä, kaiketikin sorsaa ym. mutta mitä tarvittaisiin asennuspakettiin, se on sitten toinen juttu. Ei mitään käsitystä. Basic for Qt siis tekee kaiken ensin C++ -koodiksi, josta sitten kääntyy itse sovellus.

Siellä on todennäköisesti vain se yksi binääri, joka tarvitaan Qt-kirjastojen lisäksi.
« Viimeksi muokattu: 03.03.15 - klo:20.02 kirjoittanut nm »

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #9 : 03.03.15 - klo:21.06 »
Siellä on todennäköisesti vain se yksi binääri, joka tarvitaan Qt-kirjastojen lisäksi.

Kiitos! Nyt kysymys kuuluukin, ovatko ajonaikaiset Qt-kirjastot jostakin ladattavissa pakettina, jolloin sovellusbinäärin kopsaaminen tarvittavalle Ubuntu-koneelle työpaikan ympäristössä hoitaisi asennushomman ilman paketointia?

Latasin muuten  myös minngw:n koneelle, mutta en minä saa Qt Creatoria sitä näkemään (Tools > Options > Tool Chains (onkohan oikea paikkakaan?)  Tämä kysymys lähinnä akateeminen.

Edit: Tuon ldd-komennon löysin jo päivällä, ja komento pienestä laskinohjelmasta tuottaa tolkuttoman pitkän litanian kirjastoja, joista tietysti valtaosa on käyttöjärjestelmän. Oli siellä alussa jotain Qt:hen viittaaviakin nimiä. Qt-sälä on pakettivarastosta otettu 12.04:lle ja vähän vanhaa jo (Qt 4.8.1, Creator 2.4.1).
« Viimeksi muokattu: 03.03.15 - klo:21.12 kirjoittanut New_user »

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #10 : 03.03.15 - klo:23.41 »
Kiitos! Nyt kysymys kuuluukin, ovatko ajonaikaiset Qt-kirjastot jostakin ladattavissa pakettina, jolloin sovellusbinäärin kopsaaminen tarvittavalle Ubuntu-koneelle työpaikan ympäristössä hoitaisi asennushomman ilman paketointia?

Helpointa ja varminta olisi asentaa järjestelmän tarjoamat paketit. Debianissa/Ubuntussa yksinkertaisemmille ohjelmille riittänee libqtcore4 ja libqtgui4. Lisää mahdollisesti tarvittavia kirjastopaketteja löytyy vaikkapa libqt4-dev-paketin riippuvuuksista.


Latasin muuten  myös minngw:n koneelle, mutta en minä saa Qt Creatoria sitä näkemään (Tools > Options > Tool Chains (onkohan oikea paikkakaan?)  Tämä kysymys lähinnä akateeminen.

Eipä ole kokemusta Qt-ohjelmien ristiinkääntämisestä. Voi mennä hankalaksi Qt Creatorin kautta.


Edit: Tuon ldd-komennon löysin jo päivällä, ja komento pienestä laskinohjelmasta tuottaa tolkuttoman pitkän litanian kirjastoja, joista tietysti valtaosa on käyttöjärjestelmän. Oli siellä alussa jotain Qt:hen viittaaviakin nimiä.

Jep, niistä Qt:hen viittaavista kirjastoista voi suoraan päätellä, mitä paketteja kohdekoneeseen tarvitaan. Muut listauksen riippuvuudet johtuvat enimmäkseen Qt-kirjastojen riippuvuuksista.

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #11 : 04.03.15 - klo:09.06 »
Jep, niistä Qt:hen viittaavista kirjastoista voi suoraan päätellä, mitä paketteja kohdekoneeseen tarvitaan. Muut listauksen riippuvuudet johtuvat enimmäkseen Qt-kirjastojen riippuvuuksista.

Koodia: [Valitse]
ldd ./Webbox | grep 'Qt'   
       
Lainaus
libQtDeclarative.so.4 => /usr/lib/i386-linux-gnu/libQtDeclarative.so.4 (0xb73a3000)
   libQtWebKit.so.4 => /usr/lib/i386-linux-gnu/libQtWebKit.so.4 (0xb5a49000)
   libQtSvg.so.4 => /usr/lib/i386-linux-gnu/libQtSvg.so.4 (0xb5984000)
   libQtSql.so.4 => /usr/lib/i386-linux-gnu/libQtSql.so.4 (0xb5946000)
   libQtGui.so.4 => /usr/lib/i386-linux-gnu/libQtGui.so.4 (0xb4e73000)
   libQtNetwork.so.4 => /usr/lib/i386-linux-gnu/libQtNetwork.so.4 (0xb4d26000)
   libQtCore.so.4 => /usr/lib/i386-linux-gnu/libQtCore.so.4 (0xb4a48000)
   libQtScript.so.4 => /usr/lib/i386-linux-gnu/libQtScript.so.4 (0xb44cf000)
   libQtXmlPatterns.so.4 => /usr/lib/i386-linux-gnu/libQtXmlPatterns.so.4 (0xb40cc000)
   libQtDBus.so.4 => /usr/lib/i386-linux-gnu/libQtDBus.so.4 (0xb3b1a000)
   libQtXml.so.4 => /usr/lib/i386-linux-gnu/libQtXml.so.4 (0xb3660000)

Aika paljon näyttää olevan kirjastoja tarvis.  "Sovelluksessa" ei ole muuta kuin ikkuna, jossa veppikontrolli määritellyllä URL:llä.

Olisivatkohan yllä olevasta litaniasta johdetut oikeat pakettinimet tässä alla? Hämää, kun joidenkin kirjastojen nimessä 4 on lopussa, joissakin tyyliin libqt4-xxxxxx. Synapticilla tuota selvittelin, ja muuhun lopputulokseen en voinut tulla, kun asennettuja paketteja libqt:lla katselin.
   
   libqt4-declarative
   libqtwebkit4
   libqt4-svg
   libqt4-sql
   libqtgui4
   libqt4-network
   libqtcore4
   libqt4-script
   libqt4-xmlpatterns
   libqt4-dbus
   libqt4-xml

Olisi kyllä järkevää, jos jakelussa olisi vaikka metapaketti libqt4-runtime, joka sisältäisi ajonaikaisen qt-pakettikokoelman. Tämä olisi mielestäni  kaikkien etu.

« Viimeksi muokattu: 04.03.15 - klo:09.40 kirjoittanut New_user »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11433
    • Profiili
    • Tomin kotisivut
Vs: Qt Creatorilla sovellus?
« Vastaus #12 : 04.03.15 - klo:13.00 »
apt-file on oikea työkalu:
Toisinaan pitää päivittää sen tietokanta
Koodia: [Valitse]
$ sudo apt-file updateSitten haut
Koodia: [Valitse]
$ apt-file search libQtDeclarative.so.4
libqt4-declarative: /usr/lib/x86_64-linux-gnu/libQtDeclarative.so.4
libqt4-declarative: /usr/lib/x86_64-linux-gnu/libQtDeclarative.so.4.8
libqt4-declarative: /usr/lib/x86_64-linux-gnu/libQtDeclarative.so.4.8.6
eli oikea paketti olisi libqt4-declarative ja loput vastaavasti.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

New_user

  • Käyttäjä
  • Viestejä: 1242
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #13 : 04.03.15 - klo:16.54 »
Kiitos Tomin :)

Tässä alla sitten komento, jolla sain toisella 12.04 koneella pyörimään parikin Basic for Qt:lla tekemääni binäärisovellusta. Noista kirjastoista oli suurin osa jo ennestään koneella, vaikken ollut erikseen asentanut. Ehkä ne olivat LXDE-työpöydän takia. Ainoastaan libqtwebkit4 ja libphonon4 tulivat uusina. No, tuossa on alla sitten koko litania.

Koodia: [Valitse]
sudo apt-get install libqtcore4 libqtgui4 libqt4-declarative libqtwebkit4 libqt4-svg libqt4-sql libqt4-network libqt4-script libqt4-xmlpatterns libqt4-dbus libqt4-xml libphonon4
Tarvittavat kirjastot ovat siis siinä. Nyt kun olisi helppo graafinen ohjelma, joka leipoisi sovelluksesta ja noista kirjastoista asennuspaketin.
« Viimeksi muokattu: 04.03.15 - klo:16.59 kirjoittanut New_user »

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Qt Creatorilla sovellus?
« Vastaus #14 : 04.03.15 - klo:21.22 »
Nyt kun olisi helppo graafinen ohjelma, joka leipoisi sovelluksesta ja noista kirjastoista asennuspaketin.

Debreate saattaisi toimia, jos haluat tehdä deb-paketteja. Muitakin graafisia käyttöliittymiä on olemassa, mutta useimpia niistä ei ole kehitetty vuosikausiin.

Artikkeli aiheesta: Misadventures in GUI package-building [lwn.net]