Érdekelne, hogy van-e élő ember, aki rendszeresen készít GUI-s programokat python3-ban?
Ha van: milyen grafikus keretrendszert használ?
Az elsődleges gond, hogy python3 alatt kellene működnie, ami sok esetben problémás, mert a 2-es csomagok igen nagy hányada nem lett portolva, így nem tudom, a grafikus keretrendszerekkel mi a helyzet.
A másodlagos a tisztességes/elfogadható doksi. Kezdtem a tkinter-rel, de már az elején elakadtam, mert egészen alapvető dolgok nincsenek normálisan dokumentálva a megtalált leírásokban.
Előszedtem a Qt-t.
PyQt5 lenne most az aktuális, épp csak pár felszínes tutorial áll rendelkezésre és mellette a Qt5 dokumentáció, mert a PyQt5 sajátjában csak hivatkozások vannak a C++ doksira.
PySide2 lenne az alternatíva, de Ubuntu LTS (16.04) alatt csak PPA-ból lehetne feltenni valamit, amiről egyelőre nincs bővebb infóm, apt, snap, pip3 nem tud róla.
Szóval érdekelne, használ-e itt valaki ilyesmit és ha igen, akkor mit?
- 5481 megtekintés
Hozzászólások
Hébe-hóba kisebb Tkinter-es programokat készítek, de inkább csak a magam szórakoztatására. Előny: egyszerűen lehet benne viszonylag komplex UI feladatokat megoldani. Hátrány: csak 2D, nincs OpenGL.
A PySide2-őt én is néztem korábban, de elvesztettem iránta a bizalmamat, mert úgy tűnt, hogy nagyon lassan jut el egy kiforrott állapotba.
Sokan használnak wxPythont, de én nem ismerem; talán a Tkinterrel azonos tudású.
PgObject: ez kiforrott tűnik, meg bonyolultnak, de nem foglalkoztam vele.
Kivy: tervezem, hogy megnézem, egyszer. Előny: 3D, Androidon is fut. Hátrány: Androidra csomagot készíteni macerás, legalábbis nekem úgy tűnik.
--
eutlantis
- A hozzászóláshoz be kell jelentkezni
Köszi, erről a Kivy-ről most hallok először. Illetve másodszor, mert tegnap éjjel egy blogon már belebotlottam.
Hehh... miket találok :)
http://weblabor.hu/forumok/temak/112872
Közel hat éve kezdtem bele ugyanebbe, majd kukáztam a projektet. A wx-ről csak annyi maradt meg, hogy jobb kerülni.
Az okra nem emlékeztem. A jelek szerint érdemes elővenni, már nincs windows-om, így a windows support kérdése sem számít.
- A hozzászóláshoz be kell jelentkezni
"A PySide2-őt én is néztem korábban, de elvesztettem iránta a bizalmamat, mert úgy tűnt, hogy nagyon lassan jut el egy kiforrott állapotba."
Úgy tűnik 2018-ban ez változni fog, mert lassan érkezni fog a hivatalos támogatás is. http://download.qt.io/snapshots/ci/pyside/5.9/latest/pyside2/
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Ez nagyon jó lenne; főleg, ha a binding karbantartása folyamatos lenne, és nem kellene egy új Qt verzió után éveket várni a megfelelő bindingre.
--
eutlantis
- A hozzászóláshoz be kell jelentkezni
[Feliratkozás]
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Én most RPi-hoz hobbiból csináltam egy "okos" órát (idő,dátum,időjárás),de arra jutottam,hogy a pythont nem GUI-s programokhoz találták ki.
- A hozzászóláshoz be kell jelentkezni
És akkor helyette mit?
Főleg, ha cél a multplatform?
Monot kihagynám, így a C# kiesik.
Rubynak is vannak buktatói, még kevésbé tűnik támogatottnak alatta a legtöbb GUI framework, mint python3 alatt.
C++ hát legalábbis necces és rengeteg dolgot kell magamnak megoldani, ami pl. Pythonban a nyelv része (pl. unicode stringek kezelése)
- A hozzászóláshoz be kell jelentkezni
Én most a java felé tekintgetek.
- A hozzászóláshoz be kell jelentkezni
Ja, igaz, a nagy kutatgatásban a javaról megfeledkeztem.
Sajnos az egy olyan dologgá nőtte ki magát, amit már képtelen vagyok agyilag követni.
- A hozzászóláshoz be kell jelentkezni
Ha beagyazott rendszerre kell (rpi..), akkor javat ne! Tapasztalat..
En tkintert hasznaltam froccsontogep hutes szabalyozasanak megjelenitesehez, de szurnyo a hasznalata. Igazabol nem talaltam azota se jol hasznalhato gui-s libet pythonhoz es szerencsem van, hogy altalaban csak automata vezerlest kell csinalnom es nem kell hci.
De kovetem a szalat, hatha valaki mond valami jot..
- A hozzászóláshoz be kell jelentkezni
Ha nem zárkózol el az újdonságoktól, akkor Electron.
- A hozzászóláshoz be kell jelentkezni
+1
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
A Qt -t nem próbáltad ?
Jól dokumentált, rengeteg példaprogram van hozzá. Nem lesz vele gondod.
- A hozzászóláshoz be kell jelentkezni
Ö... namost... nem értem a kérdést...
Épp ott akadt el a dolog, hogy a pyqt5 enyhén szólva hiányosan dokumentált. A linked egyébként mintha qt3-ról szólna, miközben már a 4-es sem támogatott ;)
Ja, most látom, hogy ez másik szál: a qt nem nyelv, itt meg onnan ered a "mit?", hogy a python nem annyira jó gui programozáshoz.
- A hozzászóláshoz be kell jelentkezni
Erre akartam válaszolni, bár tényleg nem egyértelmű:
>"C++ hát legalábbis necces és rengeteg dolgot kell magamnak megoldani..."
Egyébként a fenti linkem a Qt 5.9 online telepítőhöz mutat. Szerintem egy próbát megérne. Nem kell megriadni a C++ -tól.
http://doc.qt.io/qt-5/qtcore-module.html
- A hozzászóláshoz be kell jelentkezni
+1. Nemreg dobtuk ossze kollegaval egy pygtk-s kioszk-programot (szinten rpi-re, szinten ora, idojaras, webkamera-kepek, statusz infok). Es sikerult megallapitanunk hogy a py(gtk)-t sem erre talalták ki es/vagy a py(gtk) még erre sem alkalmas igazan: az ora ugrik, ha valamelyik webkamera-kep epp' kiesik akkor lehal az egesz (nem, nem dob exception-t), nem igazan reszponziv. Nyilvan meg lehet csinalni jol is, de akkor a *.py kb pont annyira lesz komplex mintha igazi programnyelvbe (pl C-be) irnad - amihez eredetileg is interface-eltek ezeket a GUI-kat meg az egyebeket...
- A hozzászóláshoz be kell jelentkezni
Ugye nincs benne multithreading?
(Amennyire tudom, a legtöbb gui-s izé nem igazán szálbiztos, a multithreading okozhat gondokat)
- A hozzászóláshoz be kell jelentkezni
Az óra megjelenítését megpróbáltam szétszedni két szálra,de hasonló eredményre jutottam,szétbugolt az egész.
- A hozzászóláshoz be kell jelentkezni
Nincs, viszont pont az kellene bele hogy megoldodjanak ezek a problemak. Persze multiprocesszel is lehetne csinalni, es akkor nem lenne gond ha thread-eles gazos lenne. De mondom, igy mar annyira komplex, hogy akkor mar inkabb C vagy valami rendes cucc.
A pygtk elott pytk-t (tkinter-t) probaltuk, de az meg ennyire se volt jo. Par honap akadozas utan lecsereltuk gtk-ra. Ezutobbi stabilabbnak/egyszerubbnek tunt. De persze ez az egesz csak jatek volt nekunk, semmi explicit kritikus szerepe nincs, igy nem mentunk el annyira a reszletekbe. Oke, ha mission critical lett volna, akkor C-be csinaljuk es nem pythonba, persze.
- A hozzászóláshoz be kell jelentkezni
Mennyire publikus a forrás? Félre ne érts, csak kíváncsi vagyok, nem akarom "megszakérteni".
- A hozzászóláshoz be kell jelentkezni
Nincs annyira beleteve az internetbe, de el tudom kuldeni ha erdekel (forras csak azon az rpi-n van, ami meg csak egy 10.*.*.*-os ip-n erheto el, olyan gepekrol amik meg kelloen le vannak tuzfalazva). De feltehetoen jo peldaja a "minden programnyelvben lehet C programot irni"-ra ;) Mondjuk a python-os gtk binding az tenyleg 1:1 lekepezese a C-beli libgtk(2) API-nak, szoval ez tkp ebben az esetben inkabb tautologia ;]
- A hozzászóláshoz be kell jelentkezni
Hát ha el tudod küldeni, megköszönöm.
Vagy ha feltolod a githubra, akkor esetleg találnál embert, aki meg tudja mondani, mi a gond vele.
- A hozzászóláshoz be kell jelentkezni
> +1. Nemreg dobtuk ossze kollegaval egy pygtk-s kioszk-programot (szinten rpi-re, szinten ora, idojaras, webkamera-kepek, statusz infok)
En is csinaltam "kioskot". Az utolso dolog lenne, ahol desktop appot jelenitenek meg.
Sima webbongeszo fullscreen. Meg electronos appal se bajlodnek.
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
PyGObject (Python3 + Gtk3)
Pár hónapos tapasztalatom van, ezalatt átvergődtem magam jópár buktatón.
A C -> Python binding 99 százalékos, tehát maradtak olyan C-s függvények, strukturák, amihez nincs meg a Python binding. Ennek oka, hogy az automatikus PyGObject binding generator nem működik bizonyos C-s megoldásokkal. Szerencsére ezek egyrészt ritkák, másrészt ha belefutsz, "kézzel" Python-ból ctypes-on keresztül eléred a C-s interface-ket.
Másik probléma lehet PyGObject binding esetén a memória foglalás és memoria lyukak. Nekem is volt vele problémám, emellett pl LinuxMint-en is van olyan alap GUI program (panel widget), aminek memóriafoglalása szép lassan, hetek alatt felhízik 0.5-1GB-osra. Szóval a binding ilyen szempontból sem tökéletes (erre találtam elismert bug ticket-eket).
Összességében tetszett, mert sok mindent a python helyből megoldott, amikkel gépközelibb nyelveken elszöszöltem volna. Kisebb utility-k, GUI frontendek írásához ajánlom.
- A hozzászóláshoz be kell jelentkezni
+1 a PyGObject-re, mivel a PyChess is ebben készül :)
A többszálú programok írása is lehetséges, csak nagy odafigyelést igényel, és a Gtk3 hívásokat illik a fő szálban végrehajtani Glib.idle_add() segítségével. A PyChess-ben régebben ezt csináltuk, de a Python3-ra való átálláskor egyúttal ezektől is megszabadultunk, és átálltunk az asyncio használatára.
http://python-gtk-3-tutorial.readthedocs.io/en/latest/index.html
https://pygobject.readthedocs.io/en/latest/index.html#
https://lazka.github.io/pgi-docs/index.html
PyQt tutorial témában hirtelen ezt az oldalt találtam https://martinfitzpatrick.name/tag/pyqt/
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Ezt te nézted már: https://lazka.github.io/pgi-docs/index.html?
Úgy, hogy pythonhoz kerestél doksit?
Én valahogy nem látom a kapcsolatot a kettő közt.
Interface pl. nincs pythonban, virtuális metódusok?
Hogy derül ki ebből, hogy egy esemény nevét nem konstansként kell használni, hanem stringként? Egy példa a tutorialból:
win.connect("delete-event", Gtk.main_quit)
A "delete-event" úgy tűnik, a fenti doksiban konstansként szerepel, bár nem egyértelmű. Egyáltalán, a .connect metódust hol találom ebben a doksiban?
Szóval ez így, hogy csak pythonból használnám, C++ ismeretek nélkül... és nem találok jobbat. :(
- A hozzászóláshoz be kell jelentkezni
"Ezt te nézted már: https://lazka.github.io/pgi-docs/index.html?
Úgy, hogy pythonhoz kerestél doksit?"
Igen, rendszeresen ezt használom.
"Én valahogy nem látom a kapcsolatot a kettő közt."
Nem tudom milyen kapcsolatot hiányolsz, ez egy "PyGObject API Reference".
"Interface pl. nincs pythonban, virtuális metódusok?
Hogy derül ki ebből, hogy egy esemény nevét nem konstansként kell használni, hanem stringként? Egy példa a tutorialból:
win.connect("delete-event", Gtk.main_quit)"
http://python-gtk-3-tutorial.readthedocs.io/en/latest/basics.html#signa…
"A "delete-event" úgy tűnik, a fenti doksiban konstansként szerepel, bár nem egyértelmű. Egyáltalán, a .connect metódust hol találom ebben a doksiban?"
https://lazka.github.io/pgi-docs/index.html#GObject-2.0/classes/Object…
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Basszus, el kell mennem, ne felejtsem el ezt...
Valmi link nagyon rossz helyre vitt (Signals felirata volt annak is)
Térjünk erre vissza, mert úgy fest, valamit nem veszek észre abban a dokumentációban, ami nekem nagyon hiányzik.
Update: asszem, mínusz egy rejtély... a noscriptet nem szereti az az oldal.
- A hozzászóláshoz be kell jelentkezni
Na jó, ennek neki kell futnom még1x.
Mobilról nézegettem, a lapok teteje nagyon olyan volt, mintha valami C++ doksi lenne (pl. __init__ leírást nem láttam sehol, de new metódust igen, ami nem tűnt igazán pythonosnak)
Látok ott olyanokat, hogy interfaces, virtual methods, meg a bánat tudja még mi mindent, amik szintén nem kifejezetten pythonos dolgok amennyire a pythont ismerem.
Update:
Ez megnyugtató, annyira mégsem hülyültem el, csak kicsit keresni kellett, hogy merre járhattam korábban...
Erre mit lépsz?
https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/DrawingArea.html#Gtk…
A benne lévő példakód színtiszta C vagy C++. Köze nincs a pythonhoz. Nem véletlenül gondoltam, hogy valami nem kerek ezzel a dokumentációval.
- A hozzászóláshoz be kell jelentkezni
"What is this?
A tool to create sphinx documentation for gi modules using python introspection.
pgidocgen.py create introspects the gi module, pulls in the gir docs and creates a sphinx environment.
pgidocgen.py build builds html docs using sphinx."
Szóval ez az egész API dokumentáció programmal, automatikusan generálódik. A példakódokat valószínűleg elég nehéz lenne automatikusan C-ből Python3-ba konvertálni. Ezért ezeket egyenként, kézzel kellene megírni, amihez ennek a Christoph Reiter gyereknek egymagában nem sok kedve van. Ebben egyébként egyet is értek vele. Az ilyen Python3-ra átírt példa programokat egyébként szívesen veszi a http://python-gtk-3-tutorial.readthedocs.io/en/latest/index.html karbantartója.
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Jó, ez a része annyira nem izgalmas, csak azért hoztam ide, hogy végsősoron nem hallucináció volt, hogy C-t láttam benne :)
Egyébként meg... https://hup.hu/node/158516#comment-2211935
Azt hiszem, mára eljutottam a tízéves szabadság okozta leépülésnek arra a szintjére, ahol már nem csak a közelítő vakság akadályoz a tanulásban. :(
- A hozzászóláshoz be kell jelentkezni
Az eddigi hozzászólások alapján úgy tűnik, hogy a "bindingekkel" (Qt,GTK+) sok a baj.
Ha jól tudom, akkor a Kivy nem "bindinges", hanem "natív" pythonos fejlesztés; nyilván használ külső könyvtárakat, de a saját koncepciója szerint.
--
eutlantis
- A hozzászóláshoz be kell jelentkezni
Eddig nem ismertem a Kivy-t, de első ránézésre úgy tűnik, ez mobilos alkalmazások fejlesztéséhez lehet jó. Hagyományos kinézetű desktop program fejlesztése nem lehet egyszerű benne.
- A hozzászóláshoz be kell jelentkezni
Sok hozzászóló elégedetlen a Tkinterrel; megtudhatom konkrétan, hogy miért? (Nem kötözködni akarok.)
--
eutlantis
- A hozzászóláshoz be kell jelentkezni
Backend akármi, frontend HTML5 (böngésző)
- A hozzászóláshoz be kell jelentkezni
Nem ez volt a kérdés :)
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Backend: python3 + https://wiki.python.org/moin/WebFrameworks/
- A hozzászóláshoz be kell jelentkezni
Van itt valaki, aki rendszeresen programozgat GUI-t, python3 alatt?
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Nem akarom védeni, de végső soron a web is gui. Csak nem az a fajta, amit én kerestem.
- A hozzászóláshoz be kell jelentkezni
Te képes lennél olyan aljasságra, hogy egy ping/traceroute vagy egyéb, root jogot igénylő program fölé webes GUI-t tegyél? Ráadásul úgy, hogy a lokális gépen fusson a ping/traceroute vagy az egyéb? :)
- A hozzászóláshoz be kell jelentkezni
Ebből a szempontból hol van a különbség az ./myapp-with-gui és a ./myapp && start_browser http(s)://127.0.0.1:8080 között?
- A hozzászóláshoz be kell jelentkezni
Hát... a https-hez kell egy böngésző is. És ott már html, esetleg js stb. is játszik. Tudom, hogy vannak ilyenek, de ez tőlem elég távol áll.
- A hozzászóláshoz be kell jelentkezni
Léptél már be egy router webes felületére? :)
- A hozzászóláshoz be kell jelentkezni
Azért az egy elég speciális cucc (már úgy értem, a webadmin eszközök)
- A hozzászóláshoz be kell jelentkezni
Igen és jobban szeretem a Winbox-ot.
- A hozzászóláshoz be kell jelentkezni
Routerről volt szó. ;)
- A hozzászóláshoz be kell jelentkezni
Érdekelne, hogy van-e élő ember, aki rendszeresen készít GUI-s programokat python3-ban?
Ez azért túlzás. Inkább csak ismerkedem a programozással. Most cseréltem le a tkinter-t wxPythonra, igazából azért, mert ehhez van normális GUI tervező.
A feltételeidnek nagyjából megfelel. Hogy én miért választottam:
- most jelent meg a 4-s verzió, ami már hivatalos, és pip-pel is telepíthető. Python3 kompatibilis.
- van hozzá dokumentáció - igaz nem mind friss -
- https://www.wxpython.org/ - weboldal
- vannak könyvek, videók igaz csak a régebbi verziókhoz
- multiplatform
- szabadon felhasználható
- wxFormbuilder
- A hozzászóláshoz be kell jelentkezni
PyGObject-hez van Glade, PyQt-hoz meg QtDesigner.
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Én a PyQt-t használom szinte mindenhez amihez GUI-t csinálok. Egy ideje csak Python3-t használok, így a PyQt5 csomagot, régebben Python 2/PyQt4-et használtam. Kisebb nehézségeket leszámítva minden szépen működik Linux és Windows környezetben is. Az utóbbi időben még a QtQuick-et is kipróbáltam, az is működik.
A dokumentáció nem mindig érhető el Pythonhoz, de a C++ dokumentáció nekem általában szokott tudni segíteni.
Illetve a neten is van rengeteg példa.
- A hozzászóláshoz be kell jelentkezni
PyQt5 engem azzal akasztott ki, hogy már a teljes "dokumentáció" egy linkhalmaz a Qt5 doksira. És van néhány dolog, amit nem lehet 1:1-ben átültetni C-re, ha jól emlékszem. Már a korábbi, 3-as v. 4-es is csak 20-30%-ot fedett le, a maradéknál kénytelen voltam a Qt leírást nézni, de ott még látszott a hajlandóság. Most meg... mint a csirke parasztosan: "ne B+!". Ha legalább közvetlen linkek lennének és nem kéne duplán kattogtatni az egeret...
- A hozzászóláshoz be kell jelentkezni
Itt most minden 10$: https://www.packtpub.com/
Keresés után 1 db PyQt-es könyvet és három Tkinter-est találtam.
Nem tudom milyen minőségűek, adnak-e többet, mint a neten fellelhető doksik.
--
eutlantis
- A hozzászóláshoz be kell jelentkezni
A http://scripd.com oldalon nagyon sok könyv van ebben a témában.
Érdemes körülnézni ott is.
- A hozzászóláshoz be kell jelentkezni
Egyelőre orrhosszal nyert a GObject :)
Eredetileg wxPythont akartam, de az nincs benne az ubuntu 16.04 gyári repokban, csak pip3 segítségével lehetne felvarázsolni, de az most nem nyerő... (főleg azért, mert virtualenv alatt a telepítése csak egy nagy halom hibaüzenetet produkált :) - bár ez lehet, hogy csak azért volt, mert olvasás nélkül próbáltam ki a pip install wxPython-t)
- A hozzászóláshoz be kell jelentkezni
PyCharm-ot használok, ott a beállításokban lehet keresni és telepíteni modulokat, többek között már a wxPython-t is. Még konzol se kell hozzá.
- A hozzászóláshoz be kell jelentkezni
O.K., de ha használható programot akarok írni, akkor szükség lehet az egyszerű telepítésre, ott nem várhatom el, hogy a pycharm legyen az első telepített szoftver. :)
Eredendően innen jött a tkinter, mert az ott van minden python telepítésben.
- A hozzászóláshoz be kell jelentkezni
> Eredendően innen jött a tkinter, mert az ott van minden python telepítésben.
Igazabol, ha csak nem mondok/csinalok hulyeseget, szerintem ez sem igaz igy teljesen.
Windowson pl. a Py3.6 telepito wizard egyik checkboxa az, hogy kerem-e a tkinter csomagot vagy sem (par hete telepitettem).
De... Hirtelen ket-ket proba Ubuntu 16.04-en:
Python2
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.>>> import tkinter
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named tkinter>>> import Tkinter
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in
raise ImportError, str(msg) + ', please install the python-tk package'
ImportError: No module named _tkinter, please install the python-tk package
>>>
Python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.>>> import tkinter
Traceback (most recent call last):
File "/usr/lib/python3.5/tkinter/__init__.py", line 36, in
import _tkinter
ImportError: No module named '_tkinter'During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.5/tkinter/__init__.py", line 38, in
raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package
>>>>>> import Tkinter
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named 'Tkinter'
>>>
Hat ez bizony nincs itt (nem toroltem nem le, nincs venv-ben)
-------------------------
Roses are red
Violets are blue
Unexpected '}' on line 32
- A hozzászóláshoz be kell jelentkezni
Itt már volt valami varázslat, régebben az volt a mondás, hogy a Tkinter a default, ha van GUI-d, akkor általában volt Tkinter is.
"The tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit"
Windows-ra by default felment, sose kerestem, hogy ki lehet-e herélni.
A virtuális gépeimen, ahol nincs GUI, ott valóban nincs fent a python-tk, de a laptopra semmi ilyet nem raktam fel, mégis ott volt.
- A hozzászóláshoz be kell jelentkezni
virtualenv
- A hozzászóláshoz be kell jelentkezni
Pardon?
Az pont nem illik ide. Szerintem.
- A hozzászóláshoz be kell jelentkezni
A Linux disztribúciók szeretik szétszedni külön csomagba.
sudo apt install python(3)-tk
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
O.K., de ha használható programot akarok írni, akkor szükség lehet az egyszerű telepítésre, ott nem várhatom el, hogy a pycharm legyen az első telepített szoftver. :)
Nem akarok kötekedni, de ennek a mondatodnak semmi értelme. Legalábbis én nem értem, mire akarsz kilyukadni.
- A hozzászóláshoz be kell jelentkezni
"PyCharm-ot használok, ott a beállításokban lehet keresni és telepíteni modulokat"
Odáig rendben van, hogy a pycharm segít telepíteni, esetleg még képes is rá, de ennél egyszerűbb módszernek jobban örülnék.
És ha a pip3 nem segít, ahogy esetemben a wxpythonnal elhasalt...
- A hozzászóláshoz be kell jelentkezni
Bocs, de ez kb. olyan mint böngésző kiegészítőt telepíteni. Rákeresel -> kiválasztod -> telepíted. Ennél egyszerűbb szerintem nem is lehetne. Kivéve ha elhasal a telepítő.:)
Amíg nem jelent meg a 4-s sokkal nehezebb volt telepíteni. Valami .whl fájlokkal szenvedtem. Linuxra azt se tudom már, hogy raktam fel. Megváltás, hogy végre lehet pip-pel telepíteni.
A PyCharm is biztosan azt használja a háttérben, csak így nem kell parancssorban pötyögni.
- A hozzászóláshoz be kell jelentkezni
Várj, te egyre a pycharm-ról beszélsz. Én meg azt próbálom magyarázni, hogy ha netán írok valami mások számára is hasznos toolt, akkor a potenciális felhasználóktól nem várhatom el, hogy rakják fel maguknak a pycharm új verzióját csak azért, mert az képes telepíteni a wxPythont, a pip3 meg nem. (Azóta se néztem meg, hogy mi baja volt, nem kizárt még mindig, hogy én rontottam el valamit)
Kár, hogy nincs benne a repoban, mert egyébként pont a wx állna legközelebb ahhoz, amit kényelmesnek tartok.
- A hozzászóláshoz be kell jelentkezni
Szerintem tévedésben vagy. Kevered a fejlesztést és a felhasználást. Azaz a fejlesztéshez kellenek olyan apróságok mint: fejlesztői környezet, modulok stb. Ebből készül egy végtermék (program). Ez két különböző dolog. Nem ugyanaz kell a fejlesztéshez mint a felhasználáshoz. Linuxon nem értek a csomag/programkészítéshez - Windowson is csak 1x csináltam ilyet -, de ha csinálnék programot tuti mellécsomagolnék minden modult, hogy ne a felhasználónak kelljen bűvészkednie a telepítéssel. A millió függőséggel. Linuxon is vannak erre megoldások. Pl: snap, flatpack.
Tehát csak annyit akarok mondani, hogy én előbb inkább a program fejlesztésével foglalkoznék, ráérek később azon agyalni, hogy hogy lehet ebből a felhasználó számára könnyen telepíthető programot/csomagot csinálni.
- A hozzászóláshoz be kell jelentkezni
Hát nem t'om... mivel nem komplex rendszerek felépítése a célom, csak apróbb kisegítő programokat akarok írni benne, telepítőt írni nem igazán áll szándékomban (kétszáz soros python script, meg ötszáz sor telepítő?)
Szeretnék olyasmiből építkezni, ami normálisan dokumentált, könnyen telepíthető és a függőségei kimerülnek egy pár elemből álló apt-get install-ban.
Na a wxpython sajnos nem ez a kategória. :(
Nem tudom, pycharm alatt fel tudnám-e rakni, most túrtam a netet a telepítési leírás után, amiből csak olyat találtam, ami python2-ről szól, illetve olyat, amiben volt egy kissé cinikus megjegyzés, hogy "hát minden konfig más, bogozd ki, hogy mi kellhet még a leírtakon túl!" - erősen szabad fordításban (https://wxpython.org/blog/2017-08-17-builds-for-linux-with-pip/ itt keress rá az OpenGL-re)
És tegyük hozzá, nem munkáról van szó - ott picit másképp állnék hozzá - hanem szórakozásból írt programokról.
- A hozzászóláshoz be kell jelentkezni
Szeretnék olyasmiből építkezni, ami normálisan dokumentált, könnyen telepíthető és a függőségei kimerülnek egy pár elemből álló apt-get install-ban.
Bocs, de így kb. az awk marad, meg a konzolos szkript. Így nemcsak a GUI, de a Python sem a barátod, hiszen a Python egyik nagy előnye pont a rengeteg külső modul. Kizárt, hogy mindből van csomag.
Manjaro-ra szerintem már pip install wxpython-nal is felmegy. Majd kipróbálom. Nem értünk egyet, szerintem ha már csinálok valamit, csináljam rendesen.
- A hozzászóláshoz be kell jelentkezni
Valószínűleg nálam is felmenne, ha lenne telepítve pár opengl-dev csomag...
Rengeteg dolog működik egyébként apt-ből telepített eszközökkel, főleg, ha beérem a 2-es pythonnal.
Abban viszont nem értek egyet, hogy csomagoljunk minden függőséget a saját cucc mellé, ahogy korábban írtad.
- A hozzászóláshoz be kell jelentkezni
A 2-es Pythont-t nyugodtan felejtsd el. Egyrészt 2020-ban hivatalosan véget ér a támogatása, másrészt nagyon ritka már az, amit még nem portoltak 3-asra, vagy ne lenne helyette valami más, eleve 3-asban írt.
A csomagolás meg egy teljesen más téma. A különféle Linux-okra érdemes követni azok csomagolási szokásait, windows-ra meg csinálni valamilyen all-in-one telepítőt. Lásd pl.: https://github.com/pychess/pychess/releases
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Pl. rrdtools nincs portolva, vagy van, csak számomra ismeretlen néven.
- A hozzászóláshoz be kell jelentkezni
Vicces:
$ apt-cache search python3 | grep rrd
$
Ubuntu 16.04.4
Igaz, a pip már jobb egy fokkal, ott van n+1 hasonló csomag.
Ráadásul amikor szükség lett volna rá, akkor akárhol kerestem, csak a 2-es változatot találtam. :(
(pip3 valószínűleg kimaradt akkor a keresésből)
Úgy tűnik, a törölt blog posztjaim egyikében anyáztam pár hete, hogy kb. minden második package, amit használnék, csak python2 alól érhető el.
Sajnos nem tudom, mi volt a másik, ami nagyon kellett volna.
Pedig lehet, hogy az is megvan pip alatt.
- A hozzászóláshoz be kell jelentkezni
Abban viszont nem értek egyet, hogy csomagoljunk minden függőséget a saját cucc mellé, ahogy korábban írtad.
Nem pont ezt írtam. Inkább ezt:
Tehát csak annyit akarok mondani, hogy én előbb inkább a program fejlesztésével foglalkoznék, ráérek később azon agyalni, hogy hogy lehet ebből a felhasználó számára könnyen telepíthető programot/csomagot csinálni.
Arra céloztam, hogy ne az eszköz határozza meg a feladatot, hanem a feladat az eszközt. Tehát előbb legyen kész és jó a program, aztán utána lehet gondolkodni a csomagoláson. Az hogy én Windowson mellécsomagoltam minden függőséget egy fájlba, ezért olyan gépen is futott, amin a Python nem volt telepítve, az csak egy példa volt.
- A hozzászóláshoz be kell jelentkezni
"ha csinálnék programot tuti mellécsomagolnék minden modult, hogy ne a felhasználónak kelljen bűvészkednie a telepítéssel."
Szerintem ezt te írtad. :)
- A hozzászóláshoz be kell jelentkezni
Valószínűleg azért, mert Windows-on ez így praktikus.
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Ez jutott eszembe nekem is, de pont pythonnál ez ott sem túl nyerő.
- A hozzászóláshoz be kell jelentkezni
Ezt nem értem. Kifejtenéd részletesen, mire gondolsz?
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Pl. pip. ActiveState Pythonban úgy rémlik, volt az is, akkor meg miért rakjak mindent egy csomagba (ahogy pl. az Eclipse a java-t), nem tisztább megadni a függőségeket?
- A hozzászóláshoz be kell jelentkezni
Ha minden megvan a pypi-n, akkor ok, de ha valamit csak máshonnan lehet telepíteni (pl. PyGObject), akkor már jobb (=kényelmesebb a végfelhasználóknak) az egybecsomagolt cucc.
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Ebben az a poén, hogy PyGObject csomagot egy darabot sem telepítettem. Fogalmam sincs, hogy került a gépemre, de fenn van. :)
Gyanítom, a Unity egyik alkatrésze vagy más GUIs cucc hozta magával függőségként.
Egy apt-get autoremove --simulate python3-gi elég érdekes listát ad az automatikusan eltávolítandó csomagokról. Kb. a fél rendszer. :)
- A hozzászóláshoz be kell jelentkezni
A "valamit csak máshonnan lehet telepíteni" természetesen Windows-ra vonatkozott.
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Sejtettem :)
Bár... valamelyik monitorozó szoftvert pl. nem lehetett repoból telepíteni ubuntura sem, mert nem volt hajlandó működni.
Saját oldaláról letöltve működött.
Eclipse+pydev (hogy ontopic is legyen) detto.
A PyGObject csak azért volt furcsa, mert ezeknél nem vagyok hozzászokva, hogy linuxra maguktól felmásznak (konkrétan az, hogy bármely rendszer alkatrész 3-as pythont használ)
- A hozzászóláshoz be kell jelentkezni
Azért ez roppant szomorú.
Gyakorlatilag minden eddig megnézett cucc (PyQt5, PyGObject, Tkinter stb.) doksija a használhatatlan kategóriába tartozik, ha az ember nem tud C-t fejben pythonra fordítani...
Roppant zavaró, hogy az ember arra koncentrálna, hogy mit is csinál egy-egy alkotóeleme az adott csomagnak, ehelyett azon kell töprengeni, hogy akkor most mi is van az __init__ helyett és az egyes nyelvi elemeket hogyan forgassam át pythonra. (mondjuk C-nél még elmegy, de amikor képbe kerül az OOP, akkor a C++... hát nem mindig egyszerű)
Tkinter még rosszabb e tekintetben, mert ott meg a Tcl/tk-t kell megérteni és átültetni real-time :(
- A hozzászóláshoz be kell jelentkezni
A Kivyt kihagytad :-) Vagy azt még nem nézted?
--
eutlantis
- A hozzászóláshoz be kell jelentkezni
Még nem, mert ahogy itt valaki megjegyezte, az inkább mobil platformnak tűnt első látásra, abba meg egyelőre nem akarok belemenni, de a végén majd arra is ránézek.
- A hozzászóláshoz be kell jelentkezni
Najó, ezt itt, hogy úgy mondjam, benéztem, de rendesen.
A PyGObject ref.guide (API) mégiscsak python, csak helyenként kicsit furcsa szóhasználattal és nem árt az első ötven soron túl is körülnézni.
A tkinter-nél persze nem az van, mint a Qt esetében, mert ott a doksi egy része megvan pythonos formában, csak azok a triviális részleteket tartalmazzák. Amikor valahol mélyebbre kell túrni, akkor jön elő, hogy hát azt nézd meg a tcl/tk leírásában.
- A hozzászóláshoz be kell jelentkezni
PyGObjectet használva hogyan, pontosabban mivel lehet pontokat, vonalakat, esetleg görbéket rajzolni?
Ilyesmikre gondolok:
https://github.com/haa-zee/python3-sandbox/blob/master/probak/tkpro_can…
https://github.com/haa-zee/python3-sandbox/blob/master/probak/tkpro_can…
Létezik, hogy csak a cairo használatával?
Főleg a második a problémás egy rövidke keresést követően, az animációs jellege miatt.
- A hozzászóláshoz be kell jelentkezni
PyGObject Gtk - ha kimarad a
win=Gtk.Window() után a win.connect("delete-event", Gtk.main_quit), akkor nem lehet normál úton lelőni a programot, mert még a Ctrl-C-t is lenyeli.
kill kell neki, hogy leálljon. :(
Vajon ez normális vagy már megint nem vettem észre valamit?
- A hozzászóláshoz be kell jelentkezni
Normális, vagy inkább "normális"
https://bugzilla.gnome.org/show_bug.cgi?id=622084
Elvileg javították 2017 végén, az idén megjelenő linux-ok már tartalmazzák a javítást.
workarounds (2018 előtti rendszerekhez):
https://stackoverflow.com/questions/26388088/python-gtk-signal-handler-…
https://stackoverflow.com/questions/16410852/keyboard-interrupt-with-wi…
- A hozzászóláshoz be kell jelentkezni
Köszi, ezt jó tudni.
- A hozzászóláshoz be kell jelentkezni
Sajnálom, hogy nem blogba írtam ezt a témát.
Most nyugodt lélekkel törölném.
Elkurvult ez az IT világ, de nagyon. Főleg dokumentálás terén. Lenne egy kellemesnek mondható nyelv, a python, már napok óta azon nyűglődök, hogy milyen GUI-t próbáljak alaposabban megismerni, hogy ne koppanjak túl nagyot vele, könnyen és gyorsan használatba vehessem.
Próblnék olyan triviális szarokat megtalálni, hogy hogyan kell a PyGObject Gtk moduljának használatával egy szöveges beviteli mező tartalmát ellenőrizni, hogy mondjuk ha valahol IP címet várok, akkor akármilyen krixkraxot ne fogadjon el. Biztosan bennem van a hiba, de konkrétan erre vonatkozó példát nem találok.
Szeretnék vonalakat rajzolni. Semmi extra, csak x időközönként egy-egy függőleges vonal, illetve ha ez ronda, akkor grafikon jelleggel, egy-egy pontot kirakni és az újat az előzővel összekötni egyetlen vonallal. Ilyet se találok. Van szó cairo-ról valami statisztikai modulról meg még a bánat tudja miről. De hogy (ex has kitalálok neveket) lenne egy Gtk.Canvas(), amire lehetne rajzolni a saját metódusaival, ahogy pl. a Tkinter is tudja, meg a Qt QPaint-je... na olyat még véletlenül sem találok.
És ez még csak a kezdet.
Nem embernek való ez az egész...
- A hozzászóláshoz be kell jelentkezni
Az elsőhöz:
https://gist.github.com/gbtami/a1dbbffac2ee8e1aed0c28112c9c279e
https://lazka.github.io/pgi-docs/#Gtk-3.0/classes/Editable.html#signals
A másodikhoz:
https://github.com/GNOME/pygobject/blob/master/examples/cairo-demo.py
https://pycairo.readthedocs.io/en/latest/
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Köszi szépen, de szerintem jobban jársz, ha nem foglalkozol velem. Csak a saját tehetetlenségemen dühöngök.
Basszus... anno orosz nyelvű doksikból ki tudtam bányászni a lényeges infókat, pedig alig tudtam valamit oroszul, most meg az angolokkal sem boldogulok, pedig az angol sokkal jobban megy, mint anno az orosz.
Ráadás, hogy az a nyomorult google egyre kevésbé ad hasznos, releváns találatokat.
Azt hittem pár hete, hogy pythonban összedobni egy sima űrlapot, öt perces feladvány. Ehhez képest még mindig ott tartok ahol... :(
Ui: a másodikkal épp az a nagy bajom, hogy cairo nélkül mintha esélytelen lenne...
- A hozzászóláshoz be kell jelentkezni
Miért, mi a baj a cairo-val?
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
+1 megtanulandó framework, ami eddigi olvasmányaim alapján mintha nem illeszkedne igazán a pygobject saját rendszerébe.
Annyi maradt meg, hogy valamit átvettek belőle, de azzal meg már nem emlékszem, milyen problémák vannak.
Valahogy arra számítottam az évekkel ezelőtti Qt-s próbálkozásaim alapján, hogy "házon belül" megoldottak mindent.
Hogy van egy osztály, ami egy rajztábla, pont, vonal, görbe, esetleg 2d-s alakzatok rajzolására alkalmas eszközökkel, ami a gobjects vagy még inkább a gtk osztályaiból épül fel.
Hogy fogok egy Frame/Window ojjektumot, beledobok egy layout managert, abba a saját kis szarjaimat és működik a form, mindenféle mágia nélkül, nem kell (ha nem akarok) signalokkal foglalkozni, hogy két sorban elintézhető pl. egy scrollozott grafikon (lásd gui-s monitor programokon a cpu használat grafikonja), mert egy nem látható rajzlapra kirajzolom az aktuális állapotot, aztán egyben lecserélem, amitől olyan, mintha mozogna, hogy (ez ugyan nem a rajzolós dolog), egy beviteli mező tartalmának a validációja kimerül egy validate=függvény paraméterben, ahogy pl. a tkinterben, csak ott kissé... khm... hiányos pont ez a dokumentáció... (vagy legalábbis én nem találtam, a blogban ahol leírták, hogy hogy műxik, ott a szerző is azt írta, hogy nem túl bőbeszédű a doksi e téren) stb.
Szóval nem kicsit frusztráló ez az egész.
Főleg az, hogy ezekhez az újabb vackokhoz, legyen az pygobject pygtk helyett, vagy qt5 qt4 helyett, alig találok hasznos infót. A legtöbbször nézzem meg a C-s leírást, használjam a korábbi verzióét, csak legyek tekintettel a nem kevés eltérésre stb.
Elhiszem, hogy ha valaki benne élt és követte a változásokat, annak ez nem okoz gondot, de így nulláról... hát hosszú távú hobbinak biztosan nem fog megmaradni.
- A hozzászóláshoz be kell jelentkezni
Üdv a szabad szoftverek világában! :)
--
♙♘♗♖♕♔
- A hozzászóláshoz be kell jelentkezni
Hát... ja... :(
Editable - aprócska bug:
https://stackoverflow.com/questions/40074977/how-to-format-the-entries-…
Sírjak vagy röhögjek?
- A hozzászóláshoz be kell jelentkezni
Bár rendszeresen nem szoktam, de ha gui kell, akkor mindig Qt-t használok. Python alatt úgy, hogy QtCreatorral megszerkesztem az ablakot/ablakokat, majd pyuic-vel átfordítom python forrásfájlokra. Innentől már egyszerű, csak össze kell drótozni az eseményeket.
https://askubuntu.com/questions/264037/how-to-use-qt-creator-with-pytho…
- A hozzászóláshoz be kell jelentkezni