Graafinen liittymä Linux ohjelmalle

C-koodari

Olen tehnyt kauan sitten erään Windows ohjelman Watcom C:llä. Tässä ohjelmassa oli graafinen käyttöliittymä joka oli tehty suunnilleen näin:

Avasin Windows ikkunan funktiolla CreateWindow() ja latasin siihen bittikarttakuvan LoadBitmap() funktiolla. Kuvassa oli mm painonappien kuvia joita hiirellä painelemalla sai käynnistettyä erilaisia toimintoja. (Hiiren kilkkaus napin kohdalla aiheutti muutoksen kuvaan, joten näytti siltä ikään kuin nappi olisi paininut alaspäin. Napin kuvaa siirrettiin hetkeksi alaviistoon muutaman pikselin verran.)

Hiiren liikkeet ja painallukset saadaan Windowsissa erilaisina viesteinä, kuten esimerkiksi WM_MOUSEMOVE ja WM_LBUTTONDOWN. Näiden viestien mukana saadaan hiiren X:Y-koordinaatit.

Nyt pitäisi tehdä vastaava Linuxille, mutta Linux kokemusta on hyvin vähän ja graafisesta liittymästä ei yhtään. Siis tarve olisi tehdä C-kieliseen Linux softaan graafista käyttöliittymää.

Sen takia muutama kysymys:

1. Millä funktiolla tai menetelmällä voin avata uuden ikkunan Linux-koneessa?
2. Millä funktiolla tai menetelmällä saan ladattua kuvan (bittikartan) tähän ikkunaan?
3. Millä funktioilla tai mentelmällä voin lukea hiiren kursorin sijainnin ja hiiren nappien tilat?

Koneessani on asennettuna gcc jolla olen tehnyt pelkästään konsolin kautta käytettäviä Linux-ohjelmia.

19

1413

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • miksuh.

      "1. Millä funktiolla tai menetelmällä voin avata uuden ikkunan Linux-koneessa?
      2. Millä funktiolla tai menetelmällä saan ladattua kuvan (bittikartan) tähän ikkunaan?
      3. Millä funktioilla tai mentelmällä voin lukea hiiren kursorin sijainnin ja hiiren nappien tilat?"

      Tuohon ei voi antaa yksiselitteistä vastausta, koska se riippuu siitä mitä käytöliitymäkirjastoa käytät. Esimerkiksi Gnome-ohjelmat käytää GTK käyttöliittymäkirjastoa. KDE-ohjelmat käyttää QT-käyttöliittymäkirjastoa. On olemassa myös muita käyttöliittymäkirjastoja, mutta noi on ne yleisimmin käytetyt.

      Jos haluat tehdä Gnome-ohjelman, niin sillon suosittelen asentamaan Anjuta -nimisen kehitysympäristön. Anjuta on täysiverinen IDE (integrated development environment) Gnomelle. Anjuta on Gnome 2.22:sta lähtien virallisesti osa Gnomea.

      Suosittelen asentamaan myös Glade-käyttöliitymäeditorin. Glade integroituu osaksi Anjutaa ja Gladella voi hiirellä klikkailemalla suunnitella käytöliittymän, josta sitten saadaan generoitu lähdekoodi ja/tai XML-muotoinen kuvaustiedosto joka kuvaa käyttöliittymän.

      Anjuta ja Glade löytyy varmasti kutakuinkin jokaisen gnomea käyttävän jakelun repoista. KDE:lle Anjutaa vastaava kehitysympäristö on KDeveloop.

      Jos sulla on Windows-ohhjelmointikokemusta enmpi, ja jos osaat C#:a, saatat haluta tehdä ohjelman sillä. Sillon voit asentaa MonoDevelop -kehitysympäristön ja mono-ajoympäristön.

      • miksuh.

        KDeveloop == KDevelop


      • miksuh.

      • C-koodari

      • C-koodari
        miksuh. kirjoitti:

        Tossa nyt alkajaisiksi yksi tutoriaali gtk ja gnome-ohjelmoinnista

        http://library.gnome.org/devel/gtk-tutorial/stable/

        "Hello Word" demosoftan kääntäminen ei ollutkaan ihan suoraviivaista. Omasta koneesta puuttui tiettyjä kirjastoja, mutta nyt se kääntyy :)

        Em opuksessa ollut luku "Compiling Hello World" ei selventänyt asioita riittävästi, ennemminkin sai pään pyörälle toisarvoisilla nippelitiedoillaan.

        Vasta gtk2-devel paketin asennus korjasi asian.


    • M-Kar
      • C-koodari

        Olen lueskellut ja testaillut jonkin verran edellä mainittua GTK:ta. Siellä on valtavasti sellaista asiaa jolla ei ole mitään tekemistä sen kanssa mitä haluan. GTK:lla saan harmaita ikkunoita joissa on harmita painonappeja joiden takana on haluamiani toimintoja. GTK tukee mm graafisia menuja, kalentereita, scrollbareja ja muuta tauhkaa jota tarvitaan kun halutaan tehdä graafista käyttöliittymää tietokoneelle.

        Minun ongelmani on sata kertaa yksinkertaisempi mutta en löytänyt siihen kuin osaratkaisun.

        Siis se mitä olen tehnyt Windowsissa oli seuraavaa:

        Minulla on digikameralla otettu valokuva eräästä laitteesta. Tämä valokuva avataan Windowsin ikkunaan jonka se täyttää kokonaan. Tässä instrumentissa on muovisia painonappeja joissa kussakin on jokin kuvapainatus. Siis painonapit eivät ole widgettejä tms vaan pelkkiä kuvia muovisista napeista.

        Sitten minulla on hiiri. Kun liikutan hiirtä kuvan päällä, niin tiedossani on jatkuvasti kursorin X ja Y koordinaatit. Kun painan hiiren nappia, niin ohjelmassani käynnistyy itse tehty funktio "hiiri(X,Y)". Tässä hiiri-funktiossa tutkin missä kohtaa kuvaa X ja Y ovat painamisen aikana.

        Olkoon instrumentin valokuva esim. 800 pikseliä leveä ja 500 pikseliä korkea. Siinä on alueella X = 500...700 ja Y = 10...450 laitteen näppäimistö. Olkoon tämän alueen oikeassa alanurkassa vaikka näppäin "Pysäytä öljypumppu". Näppäin olkoon vaikka kooltaan 50x50 pikseliä. Nyt tässä hiiri-funtkiossa jos todetaan että X on välillä 650-700 ja Y on välillä 400-450 ja hiirtä klikataan, niin hiiri()-funktio pysäyttää öljypumpun. Samalla tässä valokuvassa siirretään ko näppäintä vastaavaa aluetta hetkeksi pikkuisen alaviistoon, niin näyttää ihan siltä ikään kuin kyseinen nappi painuisi hetkeksi alas.

        Samassa valokuvassa toisaalla näkyy merkkilamppu jossa on musta öljykannun kuva. Tämä öljykannun kuva muuttuu nyt punaiseksi, kun öljynpaineet katosivat. Tämä on hoidettu siten että minulla on kaksi eri kuvaa kyseisestä alueesta: Toisessa merkkivalo on sammuksissa ja toisessa se palaa. Vaihdan vain valokuvasta kannun kohdan "sammunut" kuvasta "palaa" kuvaksi.

        Alussa esitin kolme kysymystä joista ensimmäiseen löysin vastauksen GTK-oppaasta. Kaksi muuta kysymystä ovat vielä mysteereitä minulle. Osaako joku sanoa suoralta kädeltä löytyykö vastaus näihin GTK:sta vai pitääkö sitä etsiä joltain alemmalta tasolta?

        GTK sisältää valmiita palikoita ties mihin, mutta en tarvitse niitä. Tarvitsen vain tiedon siitä miten saan siirrettyä bittikartan ikkunaan ja tiedon siitä missä kohtaa kuvaa hiirtä kilkataan.

        (Valmiilla työkaluilla tuotetut ohjelmat ovat kuin elementtitaloja: Niissä elementit määräävät millaisia taloja voi rakentaa. Jos haluat muurata tiilikivistä pienen koirankopin, niin elementit eivät ole oikea ratkaisu.
        Tässä on vähän sama juttu.)


      • C-koodari
        C-koodari kirjoitti:

        Olen lueskellut ja testaillut jonkin verran edellä mainittua GTK:ta. Siellä on valtavasti sellaista asiaa jolla ei ole mitään tekemistä sen kanssa mitä haluan. GTK:lla saan harmaita ikkunoita joissa on harmita painonappeja joiden takana on haluamiani toimintoja. GTK tukee mm graafisia menuja, kalentereita, scrollbareja ja muuta tauhkaa jota tarvitaan kun halutaan tehdä graafista käyttöliittymää tietokoneelle.

        Minun ongelmani on sata kertaa yksinkertaisempi mutta en löytänyt siihen kuin osaratkaisun.

        Siis se mitä olen tehnyt Windowsissa oli seuraavaa:

        Minulla on digikameralla otettu valokuva eräästä laitteesta. Tämä valokuva avataan Windowsin ikkunaan jonka se täyttää kokonaan. Tässä instrumentissa on muovisia painonappeja joissa kussakin on jokin kuvapainatus. Siis painonapit eivät ole widgettejä tms vaan pelkkiä kuvia muovisista napeista.

        Sitten minulla on hiiri. Kun liikutan hiirtä kuvan päällä, niin tiedossani on jatkuvasti kursorin X ja Y koordinaatit. Kun painan hiiren nappia, niin ohjelmassani käynnistyy itse tehty funktio "hiiri(X,Y)". Tässä hiiri-funktiossa tutkin missä kohtaa kuvaa X ja Y ovat painamisen aikana.

        Olkoon instrumentin valokuva esim. 800 pikseliä leveä ja 500 pikseliä korkea. Siinä on alueella X = 500...700 ja Y = 10...450 laitteen näppäimistö. Olkoon tämän alueen oikeassa alanurkassa vaikka näppäin "Pysäytä öljypumppu". Näppäin olkoon vaikka kooltaan 50x50 pikseliä. Nyt tässä hiiri-funtkiossa jos todetaan että X on välillä 650-700 ja Y on välillä 400-450 ja hiirtä klikataan, niin hiiri()-funktio pysäyttää öljypumpun. Samalla tässä valokuvassa siirretään ko näppäintä vastaavaa aluetta hetkeksi pikkuisen alaviistoon, niin näyttää ihan siltä ikään kuin kyseinen nappi painuisi hetkeksi alas.

        Samassa valokuvassa toisaalla näkyy merkkilamppu jossa on musta öljykannun kuva. Tämä öljykannun kuva muuttuu nyt punaiseksi, kun öljynpaineet katosivat. Tämä on hoidettu siten että minulla on kaksi eri kuvaa kyseisestä alueesta: Toisessa merkkivalo on sammuksissa ja toisessa se palaa. Vaihdan vain valokuvasta kannun kohdan "sammunut" kuvasta "palaa" kuvaksi.

        Alussa esitin kolme kysymystä joista ensimmäiseen löysin vastauksen GTK-oppaasta. Kaksi muuta kysymystä ovat vielä mysteereitä minulle. Osaako joku sanoa suoralta kädeltä löytyykö vastaus näihin GTK:sta vai pitääkö sitä etsiä joltain alemmalta tasolta?

        GTK sisältää valmiita palikoita ties mihin, mutta en tarvitse niitä. Tarvitsen vain tiedon siitä miten saan siirrettyä bittikartan ikkunaan ja tiedon siitä missä kohtaa kuvaa hiirtä kilkataan.

        (Valmiilla työkaluilla tuotetut ohjelmat ovat kuin elementtitaloja: Niissä elementit määräävät millaisia taloja voi rakentaa. Jos haluat muurata tiilikivistä pienen koirankopin, niin elementit eivät ole oikea ratkaisu.
        Tässä on vähän sama juttu.)

        Tässä on hyvä demo siitä mitä haluan toteuttaa, mutta erona on se että homma toteutetaan Linuxilla ja että laite on aivan muu:

        http://www.structab.se/megtax/

        Ylläoleva virtuaalilaite toimii selaimessa. Oma virtuaalilaite on sellainen että virtuaalilaitteessa ja oikeassa laitteessa pyörii täsmälleen sama sovellusohjelma.

        Oma Windowsille kirjoitettu simulaattori oli vielä realistisempi kuin yllä oleva esimerkki, sillä sen taustalla oli oikea valokuva oikeasta laitteesta.


      • miksuh.
        C-koodari kirjoitti:

        Tässä on hyvä demo siitä mitä haluan toteuttaa, mutta erona on se että homma toteutetaan Linuxilla ja että laite on aivan muu:

        http://www.structab.se/megtax/

        Ylläoleva virtuaalilaite toimii selaimessa. Oma virtuaalilaite on sellainen että virtuaalilaitteessa ja oikeassa laitteessa pyörii täsmälleen sama sovellusohjelma.

        Oma Windowsille kirjoitettu simulaattori oli vielä realistisempi kuin yllä oleva esimerkki, sillä sen taustalla oli oikea valokuva oikeasta laitteesta.

        "Oma virtuaalilaite on sellainen että virtuaalilaitteessa ja oikeassa laitteessa pyörii täsmälleen sama sovellusohjelma."

        Ahaa, eli kyseessä on siis jonkinlainen sulautettu laite. tuo selittääkin miksi haluat tehdä sen käyttöliittymän noin. Pelkästään työpöytäsovelukseksi tarkotetun sovellusohjelman käyttöliittymän tekeminen tuohon tapaan olisikin hiukan outoa, kun valmiit käyttöliittymäkirjastotkin on olemassa.


      • miksuh.
        miksuh. kirjoitti:

        "Oma virtuaalilaite on sellainen että virtuaalilaitteessa ja oikeassa laitteessa pyörii täsmälleen sama sovellusohjelma."

        Ahaa, eli kyseessä on siis jonkinlainen sulautettu laite. tuo selittääkin miksi haluat tehdä sen käyttöliittymän noin. Pelkästään työpöytäsovelukseksi tarkotetun sovellusohjelman käyttöliittymän tekeminen tuohon tapaan olisikin hiukan outoa, kun valmiit käyttöliittymäkirjastotkin on olemassa.

        Eli haluat sen simulaattorin käöyttöliittymän muistuttavan sitä oikeaa laitetta.


      • C-koodari
        miksuh. kirjoitti:

        Eli haluat sen simulaattorin käöyttöliittymän muistuttavan sitä oikeaa laitetta.

        Täsmälleen. Olen tehnyt muutamille sulautetuille laitteille simulaattoreita Windowsiin. Sovellusohjelmalla on täysin määritellyt rajapinnat ulkomaialmaan. Näiden rajapintojen takana on joko oikeaa rautaa tai simuloitua rautaa. Kun sovellus on kirjoitettu tiukasti Ansi C-standardin mukaan, niin sen voi kääntää millä C-kääntäjällä tahansa. Sulautetulle on oma kääntäjänsä ja simulaattorille omansa.

        Kun olen kehittänyt sovellusohjelmia, niin niitä ei tarvitse edes testata oikeassa ympäristössä, jos simulaattori on tehty oikein ja testattu perusteellisesti. Muutama ensimmäinen versio tietysti testaan oikeassakin ympäristössä, mutta myöhemmille versioille riittää testi pelkässä kotikoneessa ilman että tarvitsee olla todellisten härveleiden ääressä.

        Ohjelmakehityksen pystyy tekemään kotona omassa koneessa eikä läsnä tarvitse olla hirvittävää määrää laitteistoja ja muuta tauhkaa.

        Simulaattoreista on hyötyä myös koulutuskäytössä.

        Simulaattoreiden tekemisessä on jonkin verran vaivaa, mutta tämä työ saadaan monikertaisesti takaisin myöhemmin säästyneenä aikana ja työmatkoina. Kokemusta tästä on jo monen vuoden takaa.


      • C-koodari
        miksuh. kirjoitti:

        "Oma virtuaalilaite on sellainen että virtuaalilaitteessa ja oikeassa laitteessa pyörii täsmälleen sama sovellusohjelma."

        Ahaa, eli kyseessä on siis jonkinlainen sulautettu laite. tuo selittääkin miksi haluat tehdä sen käyttöliittymän noin. Pelkästään työpöytäsovelukseksi tarkotetun sovellusohjelman käyttöliittymän tekeminen tuohon tapaan olisikin hiukan outoa, kun valmiit käyttöliittymäkirjastotkin on olemassa.

        "... käyttöliittymän tekeminen tuohon tapaan olisikin hiukan outoa, kun valmiit käyttöliittymäkirjastotkin on olemassa"

        Monasti pääsee helpommalla kun koodaa jonkun pikkujutun kokonaan itse sen sijaan että käyttää paljon aikaa valmiiseen kirjastoon perehtymiseen.

        Tuo aiemmin kuvaamani periaate on yllättävän helppo toteuttaa käytännössä.


      • C-koodari
        C-koodari kirjoitti:

        "... käyttöliittymän tekeminen tuohon tapaan olisikin hiukan outoa, kun valmiit käyttöliittymäkirjastotkin on olemassa"

        Monasti pääsee helpommalla kun koodaa jonkun pikkujutun kokonaan itse sen sijaan että käyttää paljon aikaa valmiiseen kirjastoon perehtymiseen.

        Tuo aiemmin kuvaamani periaate on yllättävän helppo toteuttaa käytännössä.

        Valmiita kirjastojakin on hyvä osata käyttää. Siksi tein harjoituksen vuoksi yhden sovellusohjelman. Ei ollut ollenkaan helppoa! Se oli vaikeeta. Sekä kaiken tarvittavan tiedon löytäminen että asioiden ymmärtäminen.

        GTK-Tutorialkin on alussa selkeä, mutta mitä pidemmälle siinä mennee, sitä huolimattomammin asioita on esitetty. Ja kun menee tarpeeksi eteenpäin, niin lopulta asioille ei ole olenkaan opuksia, on vain niiden otsakkeet. Esimerkki: http://library.gnome.org/devel/gtk-tutorial/stable/x1753.html

        Ja sen referenssikirjasto on varsinainen megalomaaninen viidakko.

        Tein kuitenkin yhden demo-ohjelman GTK-kirjastoilla. Se on ladattavissa paikasta:
        http://www.kovalevy.org/474499

        Demosofta on olevinaan jonkinmoinen laskukone... tai oikeammin kaskukone. (Ei calculator, vaan malculator.) Voi sillä kyllä laskeakin, vaikka se ei ollut pääasia. Ainakin yleensä voi laskea :) Kokeilkaapa!


      • lisää?
        C-koodari kirjoitti:

        Olen lueskellut ja testaillut jonkin verran edellä mainittua GTK:ta. Siellä on valtavasti sellaista asiaa jolla ei ole mitään tekemistä sen kanssa mitä haluan. GTK:lla saan harmaita ikkunoita joissa on harmita painonappeja joiden takana on haluamiani toimintoja. GTK tukee mm graafisia menuja, kalentereita, scrollbareja ja muuta tauhkaa jota tarvitaan kun halutaan tehdä graafista käyttöliittymää tietokoneelle.

        Minun ongelmani on sata kertaa yksinkertaisempi mutta en löytänyt siihen kuin osaratkaisun.

        Siis se mitä olen tehnyt Windowsissa oli seuraavaa:

        Minulla on digikameralla otettu valokuva eräästä laitteesta. Tämä valokuva avataan Windowsin ikkunaan jonka se täyttää kokonaan. Tässä instrumentissa on muovisia painonappeja joissa kussakin on jokin kuvapainatus. Siis painonapit eivät ole widgettejä tms vaan pelkkiä kuvia muovisista napeista.

        Sitten minulla on hiiri. Kun liikutan hiirtä kuvan päällä, niin tiedossani on jatkuvasti kursorin X ja Y koordinaatit. Kun painan hiiren nappia, niin ohjelmassani käynnistyy itse tehty funktio "hiiri(X,Y)". Tässä hiiri-funktiossa tutkin missä kohtaa kuvaa X ja Y ovat painamisen aikana.

        Olkoon instrumentin valokuva esim. 800 pikseliä leveä ja 500 pikseliä korkea. Siinä on alueella X = 500...700 ja Y = 10...450 laitteen näppäimistö. Olkoon tämän alueen oikeassa alanurkassa vaikka näppäin "Pysäytä öljypumppu". Näppäin olkoon vaikka kooltaan 50x50 pikseliä. Nyt tässä hiiri-funtkiossa jos todetaan että X on välillä 650-700 ja Y on välillä 400-450 ja hiirtä klikataan, niin hiiri()-funktio pysäyttää öljypumpun. Samalla tässä valokuvassa siirretään ko näppäintä vastaavaa aluetta hetkeksi pikkuisen alaviistoon, niin näyttää ihan siltä ikään kuin kyseinen nappi painuisi hetkeksi alas.

        Samassa valokuvassa toisaalla näkyy merkkilamppu jossa on musta öljykannun kuva. Tämä öljykannun kuva muuttuu nyt punaiseksi, kun öljynpaineet katosivat. Tämä on hoidettu siten että minulla on kaksi eri kuvaa kyseisestä alueesta: Toisessa merkkivalo on sammuksissa ja toisessa se palaa. Vaihdan vain valokuvasta kannun kohdan "sammunut" kuvasta "palaa" kuvaksi.

        Alussa esitin kolme kysymystä joista ensimmäiseen löysin vastauksen GTK-oppaasta. Kaksi muuta kysymystä ovat vielä mysteereitä minulle. Osaako joku sanoa suoralta kädeltä löytyykö vastaus näihin GTK:sta vai pitääkö sitä etsiä joltain alemmalta tasolta?

        GTK sisältää valmiita palikoita ties mihin, mutta en tarvitse niitä. Tarvitsen vain tiedon siitä miten saan siirrettyä bittikartan ikkunaan ja tiedon siitä missä kohtaa kuvaa hiirtä kilkataan.

        (Valmiilla työkaluilla tuotetut ohjelmat ovat kuin elementtitaloja: Niissä elementit määräävät millaisia taloja voi rakentaa. Jos haluat muurata tiilikivistä pienen koirankopin, niin elementit eivät ole oikea ratkaisu.
        Tässä on vähän sama juttu.)

        Mikä tässä on se "vaikea" kohta?

        Jos esim. http://www.potu.com/man/doc.trolltech.com/4.0/qmouseevent.html tuntuu jotenkin ylitsepääsemättömältä niin sopii epäillä oletko koskaan ohjelmoinut mitään graafiseen käyttöliittymään kuuluvaa komponenttia.

        Ymmärrätkö esim. käsitteet lokaali/globaali koordinaatisto?


      • C-koodari
        lisää? kirjoitti:

        Mikä tässä on se "vaikea" kohta?

        Jos esim. http://www.potu.com/man/doc.trolltech.com/4.0/qmouseevent.html tuntuu jotenkin ylitsepääsemättömältä niin sopii epäillä oletko koskaan ohjelmoinut mitään graafiseen käyttöliittymään kuuluvaa komponenttia.

        Ymmärrätkö esim. käsitteet lokaali/globaali koordinaatisto?

        "Mikä tässä on se "vaikea" kohta?"

        Huoh... Jos joku ei osaa lentää matkustajalentokonetta, niin kysykö häneltä mikä on se vaikea kohta? Se pieni keltainen kytkin siinä takavasemmallako?

        "Jos esim. http://www.potu.com/man/doc.trolltech.com/4.0/qmouseevent.html tuntuu jotenkin ylitsepääsemättömältä...."

        Tuhon dokumenttiin en ole törmännyt ennen. En ole ennen kuullutkaan esim. QtGui-moduulista joten en ole edes osannut etsiä sitä.

        "...niin sopii epäillä oletko koskaan ohjelmoinut mitään graafiseen käyttöliittymään kuuluvaa komponenttia."

        Onpa sinulla outoa päättelyä. Se on totta että en ole ohjelmoinut mitään graafista ennen Linuxilla, ja erittäin vähän myöskään mitään muuta Linux softaa. Mutta jos luit loputkin repliikit, niin huomasit että onnituin ihan noviisinakin aika hyvin. Katso tekemääni demoa:
        http://www.kovalevy.org/474499 Se tosin ei ole ulkonäöltään sellainen jollainen esim sulutetun simulaattorin pitäisi olla.

        Mitä graafiseen käyttöliittymään tulee, niin tein itselleni oman kirjaston graafisten käyttöliittymien toteuttamista varten. Se tosin oli Windowsille ja siinä oli aivan toinen logiikka kuin GTK:ssa. Mutta toimiva sekin joskaan ei yhtä kattava kuin GTK. Delphit tms eivät tuota halumaani nököistä lopputulosta.

        "Ymmärrätkö esim. käsitteet lokaali/globaali koordinaatisto?"

        Tuo kuulostaa jo sellaiselta että epäilen älyäsi kun kysyt tuota. Ainakin asenne on ylimielinen. (Takku Takaisella on ollut tällä palstalla osuvia näkemyksiä tästä aiheesta.)


      • ihmetellä
        C-koodari kirjoitti:

        "Mikä tässä on se "vaikea" kohta?"

        Huoh... Jos joku ei osaa lentää matkustajalentokonetta, niin kysykö häneltä mikä on se vaikea kohta? Se pieni keltainen kytkin siinä takavasemmallako?

        "Jos esim. http://www.potu.com/man/doc.trolltech.com/4.0/qmouseevent.html tuntuu jotenkin ylitsepääsemättömältä...."

        Tuhon dokumenttiin en ole törmännyt ennen. En ole ennen kuullutkaan esim. QtGui-moduulista joten en ole edes osannut etsiä sitä.

        "...niin sopii epäillä oletko koskaan ohjelmoinut mitään graafiseen käyttöliittymään kuuluvaa komponenttia."

        Onpa sinulla outoa päättelyä. Se on totta että en ole ohjelmoinut mitään graafista ennen Linuxilla, ja erittäin vähän myöskään mitään muuta Linux softaa. Mutta jos luit loputkin repliikit, niin huomasit että onnituin ihan noviisinakin aika hyvin. Katso tekemääni demoa:
        http://www.kovalevy.org/474499 Se tosin ei ole ulkonäöltään sellainen jollainen esim sulutetun simulaattorin pitäisi olla.

        Mitä graafiseen käyttöliittymään tulee, niin tein itselleni oman kirjaston graafisten käyttöliittymien toteuttamista varten. Se tosin oli Windowsille ja siinä oli aivan toinen logiikka kuin GTK:ssa. Mutta toimiva sekin joskaan ei yhtä kattava kuin GTK. Delphit tms eivät tuota halumaani nököistä lopputulosta.

        "Ymmärrätkö esim. käsitteet lokaali/globaali koordinaatisto?"

        Tuo kuulostaa jo sellaiselta että epäilen älyäsi kun kysyt tuota. Ainakin asenne on ylimielinen. (Takku Takaisella on ollut tällä palstalla osuvia näkemyksiä tästä aiheesta.)

        >Jos joku ei osaa lentää...

        Nyt on kysymys sentään vain koodin vääntämisestä. Samat peruskomponentit löytyy joka-ainoasta grafiikkakirjastosta joten jos on yhtä käyttänyt niin muiden kanssa pärjää lukemalla "Quick reference guide":n että pysyy syntaxista kärryillä.

        >...joten en ole edes osannut etsiä sitä.

        Jos olet aikuinen ihminen niin osaisit päätellä että tuollaisia on pakko olla olemassa.


      • C-koodari
        ihmetellä kirjoitti:

        >Jos joku ei osaa lentää...

        Nyt on kysymys sentään vain koodin vääntämisestä. Samat peruskomponentit löytyy joka-ainoasta grafiikkakirjastosta joten jos on yhtä käyttänyt niin muiden kanssa pärjää lukemalla "Quick reference guide":n että pysyy syntaxista kärryillä.

        >...joten en ole edes osannut etsiä sitä.

        Jos olet aikuinen ihminen niin osaisit päätellä että tuollaisia on pakko olla olemassa.

        >>Jos joku ei osaa lentää...

        > Nyt on kysymys sentään vain koodin vääntämisestä.

        Joku ylimielinen lentäjä-ässä voisi sanoa tuohon, että kysymyshän on vain lentämisestä. Jos olet ajanut autoa niin kyllä sinun pitää osata päätellä miten lentokonetta ajetaan. Niikö? Mulla on harrastelentäjätuttu, joka ei osaa ohjelmoida riviäkään. Hän puolestaan voisi sanoa että kyse on vain lentämisestä.

        Sanotko uimataidottomalle, että ei uiminen ole vaikeaa, sen kun vain pysyt pinnalla. Kysymyshän on pelkästä uimista.

        Halooo.... eikö sinulla ole mitään käsitystä oppimisen psykologiasta? Etkö ymmärrä että kukaan ei voi osata mitään asiaa luonostaan, paitsi hengittämisien, kusemisen ja paskantamisen. Kaikki muu on opittava.

        > Samat peruskomponentit löytyy joka-ainoasta grafiikkakirjastosta joten jos on yhtä käyttänyt niin muiden kanssa pärjää lukemalla "Quick reference guide":n että pysyy syntaxista kärryillä.

        En ole koskaan käyttänyt mitään muuta grafiikkakirjastoa kuin omaani, sillä suurimmassa osassa softiani ei ole graafista käyttöliittymää, kun ovat sulautettuja systeemeitä. (Se quick reference quiden lukeminen voi olla aika iso työ, jos siinä on satoja tai tuhansia sivuja. Ja sitten kun sen sisällöstä on päässyt kärryille, niin huomaa että oops... väärä manuaali.)

        >> ...joten en ole edes osannut etsiä sitä.

        > Jos olet aikuinen ihminen niin osaisit päätellä että tuollaisia on pakko olla olemassa.   

        Niin olenkin päätellyt. En ole vain löytänyt oikeita dokumentteja, vaan olen uppoutunut vääriin dokumentteihin, kun olen tällainen maallikkotollo Linux maailmassa, oi armollinen Linux guru! Anteeksi syvästi. Menen nurkkaan häpeämään että en ole osannut etsiä oikeita dokumentteja vaan olen käyttänyt aikaani aivan väärin asioihin.

        Mitä muuten luulet että asenteesi tekee Linux-yhteisön imagolle muiden silmissä? Ainakin sen että täällä ei ole kivaa, on parempi vain kysyä omilta tutuilta Linux osaajilta. (Niitä on kaksi. Yksi osaa selittää hyvin ja ymmärrettävästi, mutta on kiireinen, toisen jutut ovat taas sellaisia yksityiskohtien yksityiskohtiin puuttuvia luentoja, että niistä ei ymmärrä mitään. Pitäisi olla paljon perustietoa entuudestaan, jotta hänen selityksensä olisivat ymmärrettäviä.)

        Olisi vielä lisää kysyttävää, mutta en taida kysyä täällä. Joku jolle asia on tuttu, osaa vastata siihen viidessä minuutissa. Sen sijaan kun itse selvittää asiaa, niin joutuu kahlaamaan tuntikausia erilaisia manuaaleja, ja parhaassa tapauksessa kahlaa läpi vääriä manuaaleja.

        Monet Linux manuaalit ovat sellaisia, että niiden ymmärtämiseen ei ole mitään edellytyksiä, jos ei ole entuudestaan riittävästi taustatietoja asiasta. Tämä on joillekin Linux-guruille ylivoimaisen vaikea asia tajuta. Minulla itselläni on erittäin pitkä työura koodauksessa, mutta sen tuoma kokemus ja tieto ei aina riitä näissä uusissa asioissa.

        Et viitsisi munata itseäsi enempää ikävällä asenteellasi. Jokainen kirjoitettu repliikki kertoo hyvin paljon kirjoittajasta.


      • pikkuisen
        C-koodari kirjoitti:

        >>Jos joku ei osaa lentää...

        > Nyt on kysymys sentään vain koodin vääntämisestä.

        Joku ylimielinen lentäjä-ässä voisi sanoa tuohon, että kysymyshän on vain lentämisestä. Jos olet ajanut autoa niin kyllä sinun pitää osata päätellä miten lentokonetta ajetaan. Niikö? Mulla on harrastelentäjätuttu, joka ei osaa ohjelmoida riviäkään. Hän puolestaan voisi sanoa että kyse on vain lentämisestä.

        Sanotko uimataidottomalle, että ei uiminen ole vaikeaa, sen kun vain pysyt pinnalla. Kysymyshän on pelkästä uimista.

        Halooo.... eikö sinulla ole mitään käsitystä oppimisen psykologiasta? Etkö ymmärrä että kukaan ei voi osata mitään asiaa luonostaan, paitsi hengittämisien, kusemisen ja paskantamisen. Kaikki muu on opittava.

        > Samat peruskomponentit löytyy joka-ainoasta grafiikkakirjastosta joten jos on yhtä käyttänyt niin muiden kanssa pärjää lukemalla "Quick reference guide":n että pysyy syntaxista kärryillä.

        En ole koskaan käyttänyt mitään muuta grafiikkakirjastoa kuin omaani, sillä suurimmassa osassa softiani ei ole graafista käyttöliittymää, kun ovat sulautettuja systeemeitä. (Se quick reference quiden lukeminen voi olla aika iso työ, jos siinä on satoja tai tuhansia sivuja. Ja sitten kun sen sisällöstä on päässyt kärryille, niin huomaa että oops... väärä manuaali.)

        >> ...joten en ole edes osannut etsiä sitä.

        > Jos olet aikuinen ihminen niin osaisit päätellä että tuollaisia on pakko olla olemassa.   

        Niin olenkin päätellyt. En ole vain löytänyt oikeita dokumentteja, vaan olen uppoutunut vääriin dokumentteihin, kun olen tällainen maallikkotollo Linux maailmassa, oi armollinen Linux guru! Anteeksi syvästi. Menen nurkkaan häpeämään että en ole osannut etsiä oikeita dokumentteja vaan olen käyttänyt aikaani aivan väärin asioihin.

        Mitä muuten luulet että asenteesi tekee Linux-yhteisön imagolle muiden silmissä? Ainakin sen että täällä ei ole kivaa, on parempi vain kysyä omilta tutuilta Linux osaajilta. (Niitä on kaksi. Yksi osaa selittää hyvin ja ymmärrettävästi, mutta on kiireinen, toisen jutut ovat taas sellaisia yksityiskohtien yksityiskohtiin puuttuvia luentoja, että niistä ei ymmärrä mitään. Pitäisi olla paljon perustietoa entuudestaan, jotta hänen selityksensä olisivat ymmärrettäviä.)

        Olisi vielä lisää kysyttävää, mutta en taida kysyä täällä. Joku jolle asia on tuttu, osaa vastata siihen viidessä minuutissa. Sen sijaan kun itse selvittää asiaa, niin joutuu kahlaamaan tuntikausia erilaisia manuaaleja, ja parhaassa tapauksessa kahlaa läpi vääriä manuaaleja.

        Monet Linux manuaalit ovat sellaisia, että niiden ymmärtämiseen ei ole mitään edellytyksiä, jos ei ole entuudestaan riittävästi taustatietoja asiasta. Tämä on joillekin Linux-guruille ylivoimaisen vaikea asia tajuta. Minulla itselläni on erittäin pitkä työura koodauksessa, mutta sen tuoma kokemus ja tieto ei aina riitä näissä uusissa asioissa.

        Et viitsisi munata itseäsi enempää ikävällä asenteellasi. Jokainen kirjoitettu repliikki kertoo hyvin paljon kirjoittajasta.

        >Et viitsisi munata itseäsi enempää ...

        Jos minä nyt kuitenkin ihan sen verran että kysyn liityikö aikasempi nikkisi jotenkin ilmaisnumeroinhin? ;)

        >...eikö sinulla ole mitään käsitystä oppimisen psykologiasta?

        Olen opastanut useampaakin nuorta ohjelmoinnin saralla ja saanut siitä jopa kiitosta.

        Tilanne on kuitenkin aina ollut se että on yhdessä pohdittu asioita ja sitä miten homma kannattaisi hoitaa eikä niin että kysyjä olisi ensin kovinkin viisaana kertonut miten näissä asioissa yleensä menetellään ja sen jälkeen suunnilleen tumput suorana kysynyt että miten se oikeasti tehdään.

        >...että täällä ei ole kivaa...

        Sanoisin kuitenkin että aika paljon itsestä kiinni. Siis oppimishalusta ja kyvystä omaksua uusia asioita.

        Oikein lämpöisiä kesäpäiviä ja onnea, menestystä ja kaikkia sentapaisia asioita tulevalle projektillesi. Kyllä se siitä, sano joku pitkä satamajätkä Turuust'.


      • C-koodari
        pikkuisen kirjoitti:

        >Et viitsisi munata itseäsi enempää ...

        Jos minä nyt kuitenkin ihan sen verran että kysyn liityikö aikasempi nikkisi jotenkin ilmaisnumeroinhin? ;)

        >...eikö sinulla ole mitään käsitystä oppimisen psykologiasta?

        Olen opastanut useampaakin nuorta ohjelmoinnin saralla ja saanut siitä jopa kiitosta.

        Tilanne on kuitenkin aina ollut se että on yhdessä pohdittu asioita ja sitä miten homma kannattaisi hoitaa eikä niin että kysyjä olisi ensin kovinkin viisaana kertonut miten näissä asioissa yleensä menetellään ja sen jälkeen suunnilleen tumput suorana kysynyt että miten se oikeasti tehdään.

        >...että täällä ei ole kivaa...

        Sanoisin kuitenkin että aika paljon itsestä kiinni. Siis oppimishalusta ja kyvystä omaksua uusia asioita.

        Oikein lämpöisiä kesäpäiviä ja onnea, menestystä ja kaikkia sentapaisia asioita tulevalle projektillesi. Kyllä se siitä, sano joku pitkä satamajätkä Turuust'.

        > Jos minä nyt kuitenkin ihan sen verran että kysyn liityikö aikasempi nikkisi jotenkin ilmaisnumeroinhin? ;)

        Mikä aikaisempi nikki? Olen ollut tällä osastolla hyvin vähän enkä tiedä mitään mistään ilmaisnumeroista.

        > Olen opastanut useampaakin nuorta ohjelmoinnin saralla ja saanut siitä jopa kiitosta.

        Täällä anonyyminä sitten voi ladella mitä sylki suuhun tuo. (En muuten ole nuori, vaan aika vanha äijä.)

        > Tilanne on kuitenkin aina ollut se että on yhdessä pohdittu asioita ja sitä miten homma kannattaisi hoitaa eikä niin että kysyjä olisi ensin kovinkin viisaana kertonut miten näissä asioissa yleensä menetellään ja sen jälkeen suunnilleen tumput suorana kysynyt että miten se oikeasti tehdään.

        Miten tämä liittyy tähän? Minä en ole "kovin viisaana" kertonut kenellekään miten asiat pitää tehdä, päin vastoin olen vain kysellyt. Sen olen kertonut miten ennen olen tehnyt, mutta en ole väittänyt missään vaiheessa että se olisi hyvä tapa.

        > Sanoisin kuitenkin että aika paljon itsestä kiinni. Siis oppimishalusta ja kyvystä omaksua uusia asioita.

        Samaa mieltä. Siksi kyselen kun haluan oppia. Ja kuten huomasit, niin olen myös oppinut uusia asioita, kun sain tehtyä aiemmin mainitun demon, vaikka se ei ollut ihan sitä mitä tarvitsen. Tein sen vain oppimisen takia. GTK-kirjasto antaa kyllä graafisen liittymän sovellukseen, mutta ei näköispainosta, jollainen on lopullinen tavoite. Siis tämän tyylinen: http://www.structab.se/megtax/ Jos GTK:lla tai jollain muulla valmiilla kirjastolla voi toteuttaa näköispainoksia helposti, niin vinkkiä tulemaan. En tiedä mitä minun pitäisi googlata, jotta löytäisin oikeat manuaalit.
        Windows maailmassa tein kaiken itse Watcomin kääntäjällä ja siinä olevalla grafiikkatuella. (Watcom on taivaallisen vanha. Tänä päivänä asian voisi varmaan tehdä helpomminkin.)

        > Oikein lämpöisiä kesäpäiviä ja onnea, menestystä ja kaikkia sentapaisia asioita tulevalle projektillesi. Kyllä se siitä, sano joku pitkä satamajätkä Turuust'.   

        Kiitos.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. en vaan saa häntä pois

      Mielestäni pyörimästä. Onko kellekään toiselle käynyt näin? Ihastuin pakkomielteisesti noin vuosi sitten erääseen naiseen. Ei vaan katoa mielestä va
      Ikävä
      175
      1968
    2. Suomi24 kysely: ihmisten kuplautumista ei pääosin koeta vakavaksi ongelmaksi

      “Kuplautumista on mahdotonta estää. Ihmiset ovat aina viihtyneet samankaltaiset arvot ja maailmankatsomuksen jakavassa seurassa ja muodostaneet sen pe
      Suomi24 Blogi ★
      36
      1694
    3. Ohhoh! Glamourmalli Elena, 29, teetti tiimalasivartalon - Vei rahaa ja tuotti tuskaa - Katso kuvat!

      Transtaustainen glamourmalli Elena Vikström on käynyt vuosien ajan plastiikkakirurgisissa toimenpiteissä. Tästä näet lopputuloksen: https://www.suomi
      Kotimaiset julkkisjuorut
      8
      1318
    4. Ostiko Martina uuden ponin tyttärelleen, vai oliko myös Stefan itsekkin valitsemassa ponia .?

      Kiva kun on tyttärelle mielekäs harrastus annettu, ehkä vielä on tulevaisuudessa hänelle tärkeä ja valitsee sen perusteella tulevan ammatin.
      Kotimaiset julkkisjuorut
      224
      1145
    5. Sinä olet tärkeä

      Herätät minussa kunnioitusta. Kiehdot minua. En oikein saa kiinni sinusta. Ehkä juuri siksi. Aistin että sinäkin pidät minusta. Vetovoima on ollut alu
      Ihastuminen
      56
      1142
    6. Varisjärvellä mersu.

      Varisjärven tiellä tuli vanhamersu kylkiedellä mutkassa vastaan ja vähällä keulaan mutta tökkäs penkkaan, hyppäsin omasta autosta ulos ja kävin kiskas
      Suomussalmi
      15
      1017
    7. Mitähän ajattelet J

      Tästä kaikesta? Mä välitän susta oikeasti.
      Ikävä
      59
      925
    8. Belorf haistattaa seuraajiaan "You can hate me now"...

      Vai haistattaako lompakkoa, joka taisi viimeinkin ymmärtää häipyä Sofian ulottumattomiin ? Sofia raukka on niin typerä, että ottaa nostetta "omasta tv
      Kotimaiset julkkisjuorut
      57
      909
    Aihe