Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Hans-Peter Jansen Newsgroups: de.comp.lang.python Subject: =?utf-8?q?=5BPython-de=5D_Re=3A_Generierung_dynamischer_QLineEdit-Felder_abh=C3=A4ngig_vom_User-Input?= Date: Tue, 01 Mar 2022 16:19:22 +0100 Lines: 109 Message-ID: <2027768.KJJ5cu5LlV@xrated> References: <7b020d1d-81d8-464f-8949-2cc858289e68n@googlegroups.com> <3836603.qn3WQ5yJgu@xrated> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de II32tgBLafgc/cz5Zl2sxg1ehm8Knw900xhYJ4PMz+XQ== Authentication-Results: mail.python.org; dkim=none reason="no signature"; dkim-adsp=none (unprotected policy); dkim-atps=neutral X-Virus-Scanned: amavisd at 'smile.earth' In-Reply-To: X-Provags-ID: V03:K1:W/ICeFZ8RieJyaraQfY+Ld+pNXN/vByMLAvkyHdqjDyFBRAV7br CfqKJNR46YFcPKvwKeQnPVAWkXvpxdE7JALnCAMp+WyOwb5HfKqxiDPtKCicJhf+Rq+vKaL B2NN3ErKe4Gp/i/1ucot/Fajf1b8+6prZzWx5vJ+pO91SHoQ39KMK72qfyOo93UvsOV4Uci irSrf7Rwpnjvebw3Eksrw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:Uda2/jyBa4w=:GtJgon2I0Z/X37v9mq2O+s hH7oMAHcGnh+glqDnJm9B/vsr7KHtggEDVCZYDcEk/IoZGtnZEOQCB1+TO+dwcpmDOtyNA4Ay 39u1pwnp8dmcuMmBg/pvQMq2a/2w0tBjvYIQ54FL9Xfdnvn+8ta8tNuz+zf27bLEFezG4PO/W pVo66AbNsOpz7Pyp0WBLWsHWWLAbcZT9SfrjgPT6k5Z5HkmXz5wjpKdUmpymfWA3ca9oiwvRA R8wPjQzFDMKHtetpnDEO4wPbkAliOMXapfXNtMu5Ezqu7+NMmqw5H4NPWGpUzO8AMS8spEkbe N7qBv9DiaJcsmnI/zmj6dfvDDhNkmbOeMVQ09zCbf5YowNNnrIHOs6l12Di9qpxr4bI897SuL TvhfNErFuDcI5OplWkV4AkLzVRGNPuG/zmf8lRe52Nps7aIi1URnU3YpTCehFM5Da1gNDTZPX 0TyZ3rrx/Jd5iV8wTiE17ze8LhFB6uLwmxcFNzmg5ZQCiqidBCxSu6OqN9OV/Z2QfAEfl2tTj +MhfFX/w4iS8FpQTiTQctPvX9HJPjjbOkVUOu2GFNlN17aB0wYVOoiy3IFTBZ/Vy3tJ+1uBvU j2u9x6hO0XbvO6NeJaLiiYpUt9m/F09GUDYaCbqZZKBHS+lfWjHd/wxkqCtkNgk0KTZz0LEoO ZWWIJOFz4apA7zp2VzaIwBrsNMz+CtfKbywdb29umMAScnvpa/lwLaNX52DXys2vNJUE= X-MailFrom: urmel@urpla.net X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-python-de.python.org-0 Message-ID-Hash: MMQRXWGITFENWUF7ZCBFUX3RDSEYAAQW X-Message-ID-Hash: MMQRXWGITFENWUF7ZCBFUX3RDSEYAAQW X-Mailman-Approved-At: Tue, 01 Mar 2022 10:52:07 -0500 X-Mailman-Version: 3.3.6b1 Precedence: list List-Id: Die Deutsche Python Mailingliste Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com de.comp.lang.python:5805 Am Montag, 28. Februar 2022, 19:56:30 CET schrieb Stefan Ram: > Hans-Peter Jansen writes: > >Wer ernsthaft grafische Beutzeroberfl=E4chen mit Python > >programmieren will, kommt an PyQt nicht vorbei. >=20 > Ich bin jedenfalls mit der in tkinter programmierten IDE > "IDLE" sehr zufrieden. Diese kann ich auch leicht durch > Modifikationen des Quellcodes an meine eigenen Vorstellungen > anpassen (was ich mehrfach getan habe). Nun, eric wird ordentlich maintained, und Detlev ist immer sehr kooperativ= =20 gewesen, daher besteht diese Notwendigkeit f=FCr mich nicht, bzw. habe daf= =FCr=20 wirklich keine Zeit. Habe mir die Python 3.10 Version von idle mal wieder angesehen, und was sol= l=20 ich sagen. Einen Vorteil haben die tk-Sachen ja: sie sehen =FCberall h=E4ss= lich=20 aus. Mein Sohn w=FCrde sagen, hey Papa, das ist so 90ies.. Na ja, die turtle graphics demo gef=E4llt mir (hat aber ein Packaging-Probl= em=20 offenbart, dass ich gleich mal fixen werde..). > Gerade wer als Anwender ernsthaft und effizient mit Software > arbeitet, sch=E4tzt es, wenn diese schnell =FCber eine Standard- > oberfl=E4che mit Men=FCs und Tastaturk=FCrzeln zu bedienen ist. > Vielleicht erlaubt Qt so etwas auch, und es ist lediglich > so, da=DF es mehr von unterdurchschnittlichen Herstellern > verwendet wird, die so etwas nicht in der Oberfl=E4che bereitstellen. Shortcuts sind 1st class member der Oberfl=E4chenkonzepte in Qt, und erford= ern=20 in der Regel genau eine Zeile Code (Zuweisung eines Events zu einer Aktion). Bei Men=FCs mit Shortcuts ist das gleich mit drin, und muss lediglich angeg= eben=20 werden.=20 Qt hat das Signals und Slots Konzept erfunden (soweit ich wei=DF), oder=20 zumindest in der GUI Programmierung etabliert, welches sp=E4ter von GTK=20 =FCbernommen wurde, dort ist es aber nur =FCbergest=FClpt (wie so vieles). =20 > >Lass Dir mal eine Datenbanktabelle mit 10000 Datens=E4tzen > >und 30 Feldern mit Tkinter anzeigen. Been there, done that. > >No fun. Mit PyQt geht sowas, und l=E4uft dann auch noch schnell >=20 > Es ist meiner Meinung nach nicht unbedingt eine gute Idee, > vielen Datens=E4tze alle in die GUI zu kopieren/binden. > Es gibt ja auch gro=DFe Tabellen mit Milliarden von > Datens=E4tzen, und sp=E4testens dann wird man sich das > =FCberlegen. Statt dessen k=F6nnte man immer nur die Datens=E4tze, > die gerade angezeigt werden sollen, in die GUI kopieren/binden. >=20 > Ich finde mit einer Web-Suchmaschine Seiten mit Titeln wie: >=20 > Why is Qt for Python so painfully slow even with a small table? >=20 > PyQt QTableView prohibitively slow when scrolling with large data sets >=20 > Slow initial show performance of QComboBox with large item count >=20 > PyQT QTableWidget extremely slow - Stack Overflow >=20 > PyQt5 Extremely Slow Scrolling on QTableView with pandas >=20 > Qt UI slow to respond even after using threads - Stack Overflow Interessant, ja, ich gebe zu, das MVC Paradigma ist nicht immer leicht zu=20 verstehen. Aber es geh=F6rt zu den leistungsf=E4higsten Prinzipien, um in e= iner=20 GUI effizient mit gro=DFen Datenmengen umzugehen. Der Trick ist, m=F6glichs= t wenig=20 Python-Code zur Darstellung zu verwenden, womit dann gro=DFe Teile mit C++ = Speed=20 ausgef=FChrt werden.=20 Ich habe sowas vor Urzeiten mit tkinter gemacht, musste dann aber alles zu = =46u=DF=20 programmieren (blocked fetching from database, caching, virtual scroll area= ). Bis das alles funktionierte, hat es gedauert.=20 In wxPython ging das schon besser, hakte dann aber in anderen Bereichen (z.= B.=20 Plattform-Unterschiede unter Mac/Win/Linux). In PyQt hat dies ca. 1/20 des tkinter Codes gebraucht, und wird mit=20 unfassbarer Geschwindigkeit ausgef=FChrt, sieht viel besser aus, die Felder= =20 k=F6nnen direkt editiert werden (wo gebraucht), dynamische/Benutzer=20 konfigurierbare Filterung ist auch kein Problem, und ist trotzdem viel weni= ger=20 Code. Drucken ist tats=E4chlich etwas aufw=E4ndiger, da flexible Pagination sowie= =20 =FCberbreite Tabellen funktionieren m=FCssen, aber Drucken ist immer eine=20 Herausforderung, wenn Sachen nicht einfach paginiert werden k=F6nnen, und=20 vielleicht auch noch gut aussehen sollen. Beste Gr=FC=DFe, Hans-Peter =2D- Life without chameleons is possible, but pointless.