ПиГТК 3: мини ГУИ водич са Питхон + ГТК + 3

Направићемо мали програм са ПиГТК 3.0 који такође ради за ПиГТК 3.4. Овај мали ГУИ научиће вас како да поделите програм на две или више датотека.

Можете посетити туторијал Себастиана Полстерла о новом ПиГТК 3, ево новог водича, остављам везу:

http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html

Ово је Себастијанов блог.

http://k-d-w.org/node/88

Једна од критика овог водича од стране Себастијана је та што он не подучава како се програм дели на делове или на неколико датотека, било би добро да је показао пример како се то ради са ПиГТК 3.

Сви велики и сложени програми подељени су у многе датотеке, а датотеке се чак смештају у друге директоријуме, односно налазе се у различитим директоријумима.

Почнимо са малим примером:

Ево кода за писање у једној датотеци која се зове гуи.пи. Отварамо Гедит уређивач текста или уређивач који највише користимо, копирамо доњи код и чувамо га као гуи.пи

фром ги.репоситори импорт Гтк цласс гуи (): деф он_опен_цлицкед (селф, буттон): принт "\" Опен "кликнуто је дугме" деф он_цлосе_цлицкед (селф, буттон): принт "Цлосинг апплицатион" Гтк.маин_куит () деф __инит__ (селф): селф.виндов = Гтк.Виндов () селф.виндов.цоннецт ('делете-евент', Гтк.маин_куит) селф.бок = Гтк.Бок () селф.виндов.адд (селф.бок) селф. буттон = Гтк.Буттон (лабел = 'Опен') селф.буттон.цоннецт ("кликнуо", селф.он_опен_цлицкед) селф.бок.пацк_старт (селф.буттон, Труе, Труе, 0) селф.буттон = Гтк.Буттон ( лабел = 'Цлосе') селф.буттон.цоннецт ("кликнуо", селф.он_цлосе_цлицкед) селф.бок.пацк_старт (селф.буттон, Труе, Труе, 0) селф.виндов.схов_алл () Гтк.маин () иф __наме__ == '__маин__': гуи = гуи ()

фронтон

деф он_опен_цлицкед (селф, буттон): испис "\" Кликнуто је дугме Опен "

То је функција која се активира у терминалу када кликнемо на дугме за отварање. Сигнал за његово активирање је:

селф.буттон.цоннецт ("кликнуо", селф.он_опен_цлицкед) деф он_цлосе_цлицкед (селф, буттон): испис "Затварање апликације" Гтк.маин_куит ()

То је функција која се активира када кликнемо на дугме за затварање.

затворите програм који покрећемо.

сигнал за његово активирање је

селф.буттон.цоннецт ("кликнуо", селф.он_цлосе_цлицкед) из ги.репоситори импорт Гтк ### позивамо ПиГТК библиотеке ### цласс гуи (): ### дефиниција класе која се зове гуи је главна класа # ##

Изјава о виџетима: виџети су програм који унапред одређују ГУИ библиотеке које користимо. На пример, виџети су дугме, прозор, оквир итд. То су виџети које декларишемо у нашем програму.

селф.виндов = Гтк.Виндов () ### виндов ### селф.бок = Гтк.Бок () ### бок #### селф.буттон = Гтк.Буттон (лабел = 'Опен') ### # дугме за отварање #### селф.буттон = Гтк.Буттон (лабел = 'Затвори') #### дугме за затварање #### селф.виндов.адд (селф.бок) #### оквир је садржан у прозор под називом виндов #### селф.бок.пацк_старт (селф.буттон, Труе, Труе, 0) ##### дугме се налази у пољу званом бок ### селф.виндов.схов_алл () ## # приказујемо цео прозор ### гуи = гуи () ### креирамо објекат гуи ####

Наш програм смештамо у фасциклу која се у нашем случају зове једноставна на радној површини

ферт

Отварамо фасциклу са терминалом, у мом случају користим Немо из Линук Минт 14.

затворено

За компајлирање постављамо у терминал питхон гуи.пи

види слику.

терминал

Сада можемо видети наш мали програм или нови виџет створен помоћу библиотека ПиГТК 3

То је једноставан прозор са два тастера.

Унтитлед

Сада програм делимо на три дела, а ја остављам код за три датотеке.

Прва датотека гуи.пи

из ги.репоситори импорт Гтк фром килл импорт уништи из ио импорт ио цласс гуи (уништи, ио): деф __инит __ (селф): селф.виндов = Гтк.Виндов () селф.виндов.цоннецт ('делете-евент', Гтк .маин_куит) селф.бок = Гтк.Бок () селф.виндов.адд (селф.бок) селф.буттон = Гтк.Буттон (лабел = 'Опен') селф.буттон.цоннецт ("кликнуо", селф.он_опен_цлицкед) селф.бок.пацк_старт (селф.буттон, Труе, Труе, 0) селф.буттон = Гтк.Буттон (лабел = 'Цлосе') селф.буттон.цоннецт ("кликнуо", селф.он_цлосе_цлицкед) селф.бок.пацк_старт ( селф.буттон, Труе, Труе, 0) селф.виндов.схов_алл () Гтк.маин () ако је __наме__ == '__маин__': гуи = гуи ()

Друга датотека ио.пи

цласс ио: деф он_опен_цлицкед (селф, буттон): принт "\" кликнуто дугме "Опен"

Трећа датотека Уништи.пи

из ги.репоситори увоз Гтк класе уништи: деф он_цлосе_цлицкед (селф, буттон): испиши "Затварање апликације" Гтк.маин_куит ()

Три датотеке смештамо у исту фасциклу, у нашем случају се фасцикла назива једноставно подељена.

једноставан

За компајлирање три датотеке. Отварамо фасциклу с терминалом и једноставно је враћамо у терминал

python gui.py

Измене у коду гуи.пи

фром уништи увоз уништи ### изјаву за увоз наше датотеке килл.пи ### из ио импорт ио ### изјаву за увоз наше датотеке ио.пи ### класа гуи (уништи, ио): #### цласс маин додајемо подкласе "килл" и ио ####

Видите да је реченица

деф он_опен_цлицкед (селф, буттон): испис "\" Кликнуто је дугме Опен "

Није у гуи.пи, већ је у датотеци ио.пи

Реченица

деф он_цлосе_цлицкед (селф, буттон):

принт "Затварање апликације"
Гтк.маин_куит ()

налази се у датотеци килл.пи

Тако програм можемо истовремено поделити на више датотека смештених у различитим директоријумима.

С друге стране, Питхон је стуб слободног софтвера и прилагођен је за рад са ГТК 3.6 /3.8, његово име је ПиГТК. Питхонова адаптација за КДЕ назива се ПиКТ.

Питхон је прилагођен за Мац ОС и ВИНДОВС.

Надам се да вам је овај мини водич за ПиГТК3 био од помоћи. Они могу да изнесу све конструктивне критике које желе.

Такође знам неке Гтк 3.4 /3.6 и Вала ГТК 3.4 / 3.6.

http://www.youtube.com/watch?v=9ckRn_sx8CE

На крају, корисници КДЕ-а се извињавају што нису урадили мини упутство за КДЕ.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Ротс87 дијо

    У кдеу више волим да користим кдевелоп (мислим да се то тако зове) за креирање гуи-а, али још увек тешко проналазим процесе да се то догоди к ствар: '(

  2.   Ст0рмт4ил дијо

    Одлично за нас који користимо Питхон: Д!

    Поздрав!

  3.   Пабло дијо

    Поздрав, пратим ову заједницу већ дуже време и нисам баш сигуран да ли сам први пут коментарисао или сам то већ урадио пре 😀 (нисам баш посвећен писању коментара на вебу). Ствар је у томе што то радим како бих Елаву и КЗКГ ^ Гаари препустио предлог као администраторима и мислим да би било добро додати додатак за бојење синтаксе сада када у последње време видим више постова са кодом на различитим програмским језицима. Знам да постоји доста додатака, али нисам пробао ниједан јер нисам корисник вордпресс-а, па сам вам дозволио да размислите о одрживости захтева. Користим прилику да остатак читалаца питам шта мисле о тој идеји, јер знам да постоје људи који воле да читају код без икаквог украса. Извињавам се ако је ово овде већ коментарисано и из неког разлога је одбијено, јер се не сећам да сам видео дискусију на ту тему.

    1.    марианогаудик дијо

      Истина је да бих волео да имам могућност бојења синтаксе да истакнем код програмских језика.
      То би помогло корисницима који желе да науче програмске језике.

      Али хеј, прија ми и форум и да можемо заједно да разговарамо и учимо.

      1.    елиотиме3000 дијо

        ГНУ Емацс је удобнији, јер бар морате да одаберете на којем програмском језику за проверу желите да радите (ако не желите већу тежину свог процесора, користите ГНУ Нано и уживајте у минимализму у најбољем случају).

        1.    марианогаудик дијо

          Elio estamos hablando de Worpress . Implementado en el blog Desde Linux. No tiene las funciones para dar color a las letras de los posteos .

          1.    елиотиме3000 дијо

            Жао ми је.

        2.    пандев92 дијо

          Нааа емацс је удобан за оне који имају 84 прста КСД .., нормалне људе, тектмате, сублиметект или нотепад ++ кд

          1.    елиотиме3000 дијо

            Невероватна ствар је да нисте научили куцање, што је потребно да бисте могли добро да се носите са ГНУ Емацс-ом и његовим пречицама на тастатури. Поред тога, његов ГУИ олакшава вам употребу његових менија (може се користити у Виндовс-у, али није препоручљиво то радити у нормалном режиму, већ у режиму командне линије, тако да вин32 не бојкотује вашу скрипту).

  4.   Царпер дијо

    Веома кул туторијал. Али успут, изворни код питхона није компајлиран, то је протумачени језик.

    1.    Гискард дијо

      Може се компајлирати у псеудо код. Није машински језик већ бајтови нешто што интерпретатору представља, али се процес назива и компајлираним. У том смислу, могуће је рећи да је нешто састављено.

  5.   хти дијо

    Можда је боље научити питгк2 јер је најновија верзија доступна за Виндовс 2.24. Серија 3 је упадљива својим одсуством. А лоши језици кажу да гном разбија све аписе у свакој новој верзији.

    1.    марианогаудик дијо

      Програмирам макету са ГТК 3.4 / 3.6 и истина је да вам сломе стрпљење и главу, морате преписати код, сада разумем зашто се људи Линук Минт-а жале на ГТК и ГНОМЕ пројекат.
      За оне из МИНТ-а слажем се са ГТК 2.4, то се није догодило.

  6.   Карлос дијо

    Добар водич и референце.
    Само детаљ, откако је стављен код, у Питхону су увлачења обавезна и треба их поштовати у примеру кода.

    Поздрав!

    1.    марианогаудик дијо

      Можете ли да објасните од чега се састоје обавезне идентификације у Питхону? Заиста вам кажем, никада то нисам чуо, лоше сам навикао на форуме ПиГТК 2/3 на енглеском и можда то превиђам.

      1.    Гискард дијо

        У Питхону не користите тастере као у Ц нити блокове почетак / крај као у Пасцалу, али све се разуме кроз увлачење које дајете код. Односно, блокови се препознају као увучени. То је особина коју посебно волим. Избегавате писање кључева и сличних ствари.

        1.    пандев92 дијо

          Једноставно ми се то не свиђа, чини се једноставнијим ставити два мала тастера или стд :: ендл;, него ако се види да ли је кд линија добро табелирана

          1.    Фелипе дијо

            : п Ваш наставник програмирања ће вам поставити 0. Или још горе, отпустиће вас са посла. Најважније је да је код читљив са свим оним што подразумева

          2.    пандев92 дијо

            завршавајући затварајућим заградама, чини ме много читљивијим КСД ..

          3.    Гискард дијо

            Озбиљно ???


            int main(int argc, char *argv[]){program_name = argv[0];while ((argc > 1) && (argv[1][0] == '-')) {switch (argv[1][1]) {case 'v':verbose = 1; break;case 'o':out_file = &argv[1][2];break;case 'l':line_max = atoi(&argv[1][2]);break;default:fprintf(stderr,"Bad option %s\n", argv[1]);usage();}++argv;--argc;} if (argc == 1) {do_file("print.in");} else {while (argc > 1) {do_file(argv[1]);++argv;--argc;}}return (0);}

            Видиш? Без удубљења то се не разуме добро. А то је лако. Са сложенијим, разуме га само компајлер. Ствар је у томе што, с обзиром да МОРАТЕ свеједно да увучете (да би људи разумели код), зашто би био сувишан и користио сепараторе? Доста са удубљењем и то је то.

          4.    пандев92 дијо

            Наравно, ништа се не разуме, јер не поштујете правила доброг писања програма на ц / ц ++. Оно што сте урадили важи за било шта, као што је гнежђење функције, унутар функције унутар друге функције која је унутар друге, онда желим да вас видим кд ако то можете да разумете.

          5.    пандев92 дијо

            иначе, са два изгледа, тај код је лако разумљив кД

          6.    Гискард дијо

            Оно што сам урадио намерно сам вам показао да је без увлачења, иако се компајлира, изузетно тешко разумети било који код. Дакле, имате 2 правила: увући и обухватити граничницима. Али то је сувишно. У Питхону тумач једноставно не прихвата такав код. И имате само једно правило: увлачење. Лако.
            Али хеј, свако са својим укусом.

          7.    Атхеиус дијо

            И једно и друго је добро, увучено и не увучено, по мом мишљењу више волим стил са зарезом или рубин, слично питхону, али увлачење није потребно.

            Ово се боље разуме: П:

            ецхо 'инт маин (инт аргц, цхар * аргв []) {име_програма = аргв [0]; вхиле ((аргц> 1) && (аргв [1] [0] ==' - ')) {прекидач (аргв [ 1] [1]) {случај 'в': опширно = 1; бреак; цасе 'о': оут_филе = & аргв [1] [2]; бреак; цасе 'л': лине_мак = атои (& аргв [1] [2]); бреак; дефаулт: фпринтф (стдерр, »Лоша опција % с \ н », аргв [1]); употреба ();} ++ аргв; –аргц;} иф (аргц == 1) {до_филе (" принт.ин ");} елсе {вхиле (аргц> 1 ) {до_филе (аргв [1]); ++ аргв; –аргц;}} ретурн (0);} '| перл -п -е 'с / \ {/ \ {\ н \ т / г; с / \; / \; \ н \ т / г; с / \ т \} / \} / г;'

            Поздрав 😀

      2.    Гискард дијо

        Мислим да Царлос значи да тамо где код изађе нема увлачења. То са цопи & пасте једноставно неће успети. Не знам да ли ознака постоји приликом креирања поста за унос језичког кода. Било би добро да га ставе ако не постоји.

        1.    Гискард дијо

          Већ сам видео у чему је проблем: Ознака ЦОДЕ уклања све размаке и картице (то не би требало да чини !!!) Али ако на њу ставите нбсп, онда код изгледа добро. А0 у хексадецималном формату (160 у децембру), иако мислим да то може зависити од фонта (не знам). Ако се користи, онда излази овако:

          def fib(n):
              a, b = 0, 1
              while a < n:
                  print(a)
                  a, b = b, a+b

          Да у мојим тестовима изгледа добро, али немам преглед када објављујем одговоре (а то би требало да буде !!!) Ако не изађе, нисам ја крив

          1.    марианогаудик дијо

            Погледајте примере које Себастиан Полстерл даје у свом туторијалу за ПиГТК 3, Себастиан не поставља етикете.

            Пример:

            http://python-gtk-3-tutorial.readthedocs.org/en/latest/entry.html#example

            можете видети све Себастианове лекције.

          2.    Гискард дијо

            Не знам на шта мислиш. Оно што хоћу да кажем је да овде, у постовима, није могуће користити ХТМЛ ознаку «ЦОДЕ» тако да оно што ставите као код буде добро увучено. На страници коју упућујете, ако погледате изворе странице, видећете да она не користи ЦОДЕ већ друге ХТМЛ граничнике.
            То није против кода који сте ставили, већ указујете на грешку у систему објављивања на овој страници. Што, можда, администратори могу поправити.
            Када говорим о ознакама, очигледно говорим о ХТМЛ-у, а не о Питхону. У сваком случају, ако ставите код без увлачења у Питхон, то једноставно неће радити. Ако дође новајлија и копира код какав се појављује у овом посту и покуша да га покрене, неће успети. Можда сте фрустрирани јер сте новајлија. Опет, кривица није ваша; и у мом непосредном претходном одговору оно што сам урадио био је начин да се проблем реши са нивоа корисник-ко-објави.

          3.    марианогаудик дијо

            Потпуно сте у праву, требало је да отпремим фотографије уместо да копирам код.
            да покаже како су искази правилно поређани у ПиГТК 3.

  7.   Фелипе дијо

    За програмирање са питхон-ом препоручујем употребу Ецлипсе-а са додатком ПиДев или Пицхар м

  8.   Луик дијо

    Као што је горе коментарисано, управо зато не волим питхон, због проблема са увлачењем. Као што смо видели, копирање и лепљење неће радити, што се не дешава са другим језицима као што су Ц, Јава, ПХП итд.

    Ствар читљивости, примењујемо уљепшавање кода (као http://indentcode.net/ ) и спреман,

    Ружно је поправљено, али ако нема увлачења и логика је промењена, звучимо ..

  9.   Карлос дијо

    Ја сам нови у ПиГТК-у, да ли је могуће комуницирати са скриптама љуске на овом језику?

    1.    здраво дијо

      Хвала на лекцији.

      Поздрав.