Új hozzászólás Aktív témák
-
Siriusb
veterán
Adj' Isten!
Python 3-mal kezdtem el ismerkedni és GUI-t szeretnék klszíteni a tkinter-rel. Kérdésem, amire nem találtam választ: Miként lehetne a root-on belül több különálló (toplevel) ablakot gyártani, amik a szülő keretén kívül nem tartózkodhatnak. Tehát egy szülő ablak foglaljon magába több leszármazott ablakot, vizuálisan is.
Vagy ezt tkinterrel nem lehet megoldani?
-
Siriusb
veterán
Úgy látom windowst használsz.
Indíts el a Parancssort (azt hiszem így hívják), vagy a Futtatásnál írd be, hogy cmd. Itt kapsz egy fekete ablakot. Ide írd be a python parancsot.
Ha jól tudom, windowsnál a py kiterjesztésű fájlokat automatikusan a pythonnal társulnak, tehát fájlkezelőben dupla kattintással is indulnia kellene.Mégegyszer: amit te láttál, azt nem a python shell-be írták be (nem volt elindítva a python), hanem egy terminálba.
-
Siriusb
veterán
válasz mate0023 #104 üzenetére
Szia!
Szerintem próbáld meg átalakítani a másdik példát.
-
Siriusb
veterán
Szia!
Pl. azért hasznos, mert átkonvertálja az adott objektumot string-é, így az ehhez a típushoz kapcsolódó függvényeket is használni tudod.
-
Siriusb
veterán
Python + tkinter kérdés:
Miként lehet megoldani, ha van egy listám ['egy','ketto','harom'], generáljak mindegyik elemből pl. egy labelentry widgetet és ezeket megjelenítsem?
-
Siriusb
veterán
Újabb kérdés, meg lehet-e egy sorban oldani 2 for ciklus helyett a következőt:
Van egy lista:
mylist= [(1,2,3), (4,5,6), (7,8,9)]Ezzel:
[[print(row[i]) for row in mylist] for i in range(3)]
ki tudom íratni egyesével az összes értéket, ám mi van akkor, ha több parancsot szeretnék kiadni, nem csak a print-et? -
Siriusb
veterán
válasz sztanozs #150 üzenetére
Kösz a választ. Olyan okos ez a python , azt hittem, ezt is lehet rövidíteni, de akkor marad a függvény.
Jó, hogy írtad a sorrendben kinyomtatást is. Most vettem elő igazán ezt a nyelvet újra, persze régebben is elég minimális ismereteim voltak vele kapcsolatban... Idáig csak kisebb dolgokra használtam, pl. csv konvertálás xml-be.
Ha már itt vagyok, GUI-nak mit használtok? Tkinter?
-
Siriusb
veterán
Még egyszer nekifutok, hátha. Egy az egybe kimásolva a terminálból. Elöljáróban:
1) ~/tmp az a /home partíciómon levő könyvtár rövid útvonala. Abszolút útvonal: /home/siriusb/tmp Bármely, neked tetsző könyvtárban lehetsz, ez csak egy példa.
2) siriusb @arch ~/tmp $ Ezt soha nem kell begépelni ez a bash prompt, kifejtve: bejelentkezett felhasználó + @ host név + útvonal + és végül egy karakter ($), ami jelzi, hogy innentől kezdve jön az, amit én, mint felhasználó írok be (értsd: parancs)Lássuk a terminált:
siriusb @arch ~/tmp $ echo -e 'print "Hello. I am a python program."\nname = raw_input("What is your name? ")\nprint "Hello there, " + name + "!"' > hello.py
siriusb @arch ~/tmp $ python hello.py
Hello. I am a python program.
What is your name? alfa
Hello there, alfa!
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Vastaggal kiemelve, amit valóban be kell gépelned!Szintaxis kiemeléssel, persze nem az igazi.
Ha kiadod a python parancsot, akkor egy interaktív felületre jutsz, ahol a >>> jel után tudod kiadni az utasításokat, pl. 5 + 5
siriusb @arch ~/tmp $ python
Python 2.7.3 (default, Dec 22 2012, 21:14:12)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 5+5
10
>>>Egyébként, amennyiben nincs különösebb okod rá, szvsz érdemesebb lenne a python3-at tanulni. Ha megy az angol: [link]
Szerk:
(#168) Orton96
Ezt most a python írta ki? Mert akkor az a baj, amit gyanítottunk, hogy olyan dolgokat is beírsz a py fájlba, amit nem kellene.[ Szerkesztve ]
-
Siriusb
veterán
Python 3-hoz milyen GUI-t ajánlanátok? Feltételek: céges szoftverhez kell, Linux és Windows alatt.
Utóbbi napokban elkezdtem beleásni magam a PyGobject/Gtk+ 3-ba és csak most kezdtem realizálni, hogy ez nincs Windowsra.
Egyelőre a PySide-t találtam, habár nem vagyok egy QT fan. Tkinter annyira nem jön be, különösen a Gtk3 -hoz hasonlítva. -
Siriusb
veterán
Nem tudok rájönni, hogy a tix labelentry-nél hogy tudom konfigolni a subwidgeteket (label és entry). Valami ötlet, miként hivatkozhatok rájuk?
-
Siriusb
veterán
Stackoverflow-n találtam ezt a példát:
qmarks = ', '.join('?' * len(myDict))
qry = "Insert Into Table (%s) Values (%s)" % (qmarks, qmarks)
cursor.execute(qry, myDict.keys() + myDict.values())Az utolsó sorban a paraméterek megadásánál lévő plusz jel kiveri a biztosítékot (unsupported operand). Ennek működnie kellene?
-
Siriusb
veterán
Ismét előszedtem python barátunkat. Rögtön van is egy kérdésem: datetime.date esetén a 3 argumentumot nem lehet list, tuple vagy valamilyen értelmes formában megadni? Annyira bántja a szemem így:
datetime.date(datum[0], datum[1], datum[2]) -
Siriusb
veterán
válasz suomalainen #225 üzenetére
A print (rand_item) valóban csak a terminálba ír. Az entry widgetet kellene használnod. Az az egyszerűség benne, hogy egy speciális változóba rakod az értékét, amit megjelenítenél, s ha az változik, a grafikus felületen is változik az entry tartalma.
Tutorial: [link]
-
Siriusb
veterán
A Python 3-at kezdtem el én is tanulgatni, s ttk-t használni gui-nak. Nekem alapvetően linuxra kell, de windows-os kliens sem ártana. Alaposan szétnéztem, ki is próbáltam a Qt-t, de nekem nem jön be, igaz a KDE-t is utálom. Most már a gtk 3 telepíthető windowsra is, szóval ebbe az irányba mozdultam el, majd abba is maradt a project. Mostanában fogom felvenni újra a fonalat.
-
Siriusb
veterán
válasz AeSDé Team #1853 üzenetére
Részemről most vettem fel ismét a python fonalat pár évvel ezelőttről, úgyhogy rengeteget bújom a doksikat, különösen a GTK3-t, mert most grafikus felületet is készítek.
Úgy vettem ki a szavaidból, nem mélyedtél még el különösebben a python-ban, ha a modulok importálása sem tiszta. Esetleg itt érdemes kezdeni: https://docs.python.org/3/tutorial/modules.html
Egy példa: ha regex-et akarsz használni, beimportálod a modult, és a modul nevével tudod meghívni az adott eljárásokat:
import re
nezd_mit_talaltam = re.search("^eztkeresem", ebben_keresem)
Így konkrétan tudsz hivatkozni a modulban található kódra, nincs összeakadás, ha más modul is használná ugyanazokat az elnevezéseket.Pl. amit most írtam, abban így néz ki az import:
import pdftotext
import re
import os
from email import generator
from email.message import EmailMessage
from email.headerregistry import Address
import mimetypes
Így szépen használni a prefix-eket, és jobban olvasható:
cwd = os.getcwd()
vagy
flags=re.IGNORECASE
Azt is el kéne dönteni, milyen GUI-t akarsz használni. Nem mindegy, mert esetleg egy tkinter-ben neked kell lekódolnod olyan dolgokat, amiket egy komplexebb felülettel készen kapsz, ami ráadásul még jól integrálódik a környezetbe.
-
Siriusb
veterán
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ, mit szívtam.
Sqltite3 date converter-t akarom használni. Beírom:
'SELECT datum AS "dateofrecording [date]" FROM meter'
erre hibával elszáll: sqlite3.OperationalError: no such column: blablaPython doksiban van egy példakód, végén kínomban már lementettem és lefuttattam, simán ment. Még jobban nem értettem, mi a baj.
Végső próbálkozásként átírtam a virtuális oszlopnevet (datum) a példában szereplő current_date-re, és így működik. Ha agyonütnek sem jövök rá erre...
-
Siriusb
veterán
válasz sztanozs #1858 üzenetére
Persze, hogy nincs benne datum nevű oszlop, mert az csak alias, a valódi oszlop dateofrecording névre hallgat..
A problémám lényege az volt, hogy az alias csak "current_date" név lehet (hiába találtam ki a "datum" fantázianevet), ugye ez hivatkozik a valódi, a táblában megtalálható "dateofrecording" nevű oszlopra a konverter szintaktikájában:
datum AS "dateofrecording [date]"
alias AS "oszlopnév [adattípus]"
azaz a konverter megkapja a mező nevét a táblából "dateofrecording", valamint hogy milyen típusra konvertálja a tartalmát a lekérdezéskor: [date], de a hivatkozási név nem lehet "datum" vagy bármi más, csak és kizárólag a "current_date" név megadásával hajlandó működni a konverter.
Ez nem olyan nagy baj, csak lenne leírva.
Mert ebből nem derült ki számomra:sqlite3.PARSE_COLNAMES
This constant is meant to be used with the detect_types parameter of the connect() function.
Setting this makes the SQLite interface parse the column name for each column it returns. It will look for a string formed [mytype] in there, and then decide that ‘mytype’ is the type of the column. It will try to find an entry of ‘mytype’ in the converters dictionary and then use the converter function found there to return the value. The column name found in Cursor.description is only the first word of the column name, i. e. if you use something like 'as "x [datetime]"' in your SQL, then we will parse out everything until the first blank for the column name: the column name would simply be “x”. -
Siriusb
veterán
válasz kovisoft #1861 üzenetére
Igazad van!
viszont a doksiban rosszul van a példa, én meg leragadtam annál, mert logikusnak tűnt a szintaktika.
import sqlite3
import datetime
con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
cur = con.cursor()
cur.execute("create table test(d date, ts timestamp)")
today = datetime.date.today()
now = datetime.datetime.now()
cur.execute("insert into test(d, ts) values (?, ?)", (today, now))
cur.execute("select d, ts from test")
row = cur.fetchone()
print(today, "=>", row[0], type(row[0]))
print(now, "=>", row[1], type(row[1]))
cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"')
row = cur.fetchone()
print("current_date", row[0], type(row[0]))
print("current_timestamp", row[1], type(row[1]))
Nézd már meg légyszíves, ebben a mintapéldában tényleg fordítva van megadva (és mégis működik), vagy én nézek félre valamit (ami könnyen megeshet ) ?
-
Siriusb
veterán
pyGTK TreeView-ban valaki otthon van?
Szerintem már nem látom a fától az erdőt, kellene egy kis lökés.Amennyiben nem csak egy kifejezett oszlopot, hanem mondjuk ötöt teszek szerkeszthetővé egyszerre (mintha egy excel táblában lennénk), akkor miként tárolom el a megváltoztatott értéket a modelben (ListStore)?
Tehát meg van jelenítve a táblázat, s a Szerkesztés gomb meghívja a következőt:
def edit_selected(self, widget):
if self._select.get_selected()[1] is None: #treeiter is None
self._tree.set_cursor(Gtk.TreePath(0), self._tree.get_columns()[0], True)
for k,renderer in self._renderers.items(): # All renderers of the columns
renderer.set_property("editable", True)
renderer.connect("edited", self.text_edited)
És ezután hogyan tároljam el az új értéket (new_text) ?:
def text_edited(self, widget, path, new_text):
pass
-
Siriusb
veterán
válasz Wmwinters01 #1888 üzenetére
Csatlakozom az előttem szólókhoz, elég könnyű elsajátítani az alapokat, nagyon kényelmes a használata, bár el kell sajátítani hozzá a "pitonikus" gondolkodást, hogy tényleg szép és a nyelvhez illő legyen a kódod.
Kíváncsiságból szondáznám én is a nagyérdeműt (ha van kedvetek hozzá):
1.) Milyen GUI-t részesítetek előnyben? (Pl. GTK, mert a KDE (Qt) kiakaszt. )
2.) Milyen IDE-t használtok (ingyenes)? (Eclipse + PyDev) -
Siriusb
veterán
Köszönöm mindenkinek a válaszokat!
Hehe, pár script nekem is megy GUI nélkül, de azért vannak olyan dolgok, amikhez célszerűbb (nekem) a GUI.
Vim-et én is szeretem, bár python-hoz még sosem használtam. Pycharm-ot kipróbálom, ha már így bejön többeknek.
-
Siriusb
veterán
válasz Siriusb #1897 üzenetére
Nem is olyan rossz a pycharm.
(#1894) s1999xx
Én sem értem, miért a tkinter-t rakták be alapnak. Mondjuk a python3-hoz sokáig nem volt wxWidget, ha jól emlékszem, azonban sokak örültek volna, ha ezzel szállítják a python3-t.A GTK3 elég jól dokumentált, bár őszintén szólva néha elveszek benne, amikor már nem tudom, egy adott osztály éppen mit és honnan örökölt. Vagy éppen amit próbálok fabrikálni, az gyárilag benne van, amire egy idő után rátalálok.
-
Siriusb
veterán
Ha azt vizsgálom, hogy egy adott szó benne van-e egy mondatban, függetlenül a kis- és nagybetűktől, létezik szebb és hasonlóan egyszerű megoldás annál, mint pl.:
if "abc" in "bla bbla ba ABC bla".lower():
? -
Siriusb
veterán
válasz kovisoft #1920 üzenetére
Szívem szerint így használnám, ahogy írtad, viszont emiatt nem akarok modult importálni. Az egyszerűség győzött.
(#1921) s1999xx
Az elmúlt héten éppen pdf fájlok bizonyos tartalmi részeinek kinyerésével foglalkoztam, ott tapasztaltam a magyar ékezetes betűknél is galibát, pl ő-ből hullámos "õ" lett. Mondjuk szerencsém volt, mert meg tudtam írni úgy a regex-eket, hogy ezek a betűk kikerüljenek a képből, szóval nem kellett vele foglalkoznom.(#1922) s1999xx
Jelen pillanatban angol szövegre használom, szóval a lower() a legegyszerűbb és legkevésbé erőforrás igényes megoldás.Néha beleesek abba a hibába, hogy egy sorba akarom zsúfolni az adott kódrészletet, aztán belátom hogy a legegyszerűbb nem mindig a legrövidebb, ráadásul ha később percekig kell bámulni, hogy mit is csinál az a sor. Szóval van amikor jobb több sorban megvalósítani a célt, nem lehet az ember teljesen elvakult.
-
Siriusb
veterán
-
Siriusb
veterán
Kösz, hogy említettétek a PyCharm-ot, kezdek egészen átszokni rá. Turkáltam kicsit a beállításokban, így már sokkal jobb, mert első ránézésre nem igazán jött be. Sőt, most már a Gtk kódkiegészítést is megoldottam némi keresgélés után, mert ennek hiánya hátrány volt számomra. Mondjuk azt nem értem, miért nem lehet jobbra-balra tologatni a sorokat, de ebbe beletörődök.
-
Siriusb
veterán
válasz s1999xx #1933 üzenetére
Nem, ez nem volt meg, mert a Move element left/right nálam inaktív, de a TAB-os megoldás tökéletes, kösz!
(#1934) EQMontoya
Óóó, én csak az esztétika miatt szoktam igazgatni, hogy amikor képernyőkímélőnek berakom a py fájlokat, akkor hasonlítson a Mandelbrot-halmazokhoz.(#1936) cain69
Olyan esetre gondolok például, amikor nem használom a Surround with-et, csak beszúrok egy "if"-et és az alatta levő sorokat beljebb rendezném. Vagy fordítva.(#1935) sztanozs
-
Siriusb
veterán
Pygtk kérdés:
Egy treeview első három oszlopát szeretném fagyasztani. Beépített megoldást nem találtam, ezért azt gondoltam, hogy két darab view lesz egymás mellett ugyanazon modellből dolgozva, csak éppen az adott oszlopok nem lennének megjelenítve. Viszont össze kéne kötni, ha sorbarendezek az egyik view-ban, azt a másik is tükrözze. Ez így működhet? Vagy van jobb megoldás?
Új hozzászólás Aktív témák
- Politika
- Milyen egeret válasszak?
- Kormányok / autós szimulátorok topicja
- Napelem
- Itt az első kép a 2024-es Nokia 3210-ről
- Analóg fényképezés
- Piacvezető tandem OLED panellel érkezik az iPad Pro
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Vezetékes FEJhallgatók
- Fogyjunk le!
- További aktív témák...
- i7 7700K////1070 TI///16GB
- ASUS ZENBOOK 13 UX333FA - 13,3"FHD IPS - i5-8265U - 8GB - 512GB SSD - Win11 - Magyar
- Playstation 5 Drive Edition 825GB (CFI-1216A), 2025.11.03-ig gyári garanciával, Bp-i üzletből eladó
- Lüm-tec m85 Svájci szerkezetű Amerikai microbrand
- Új! 64Gb DDR4 - Corsair 32GB KIT DDR4 4600MHz CL18 Vengeance RGB RT