Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5805

[Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input

From Hans-Peter Jansen <urmel@urpla.net>
Newsgroups de.comp.lang.python
Subject [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input
Date 2022-03-01 16:19 +0100
Message-ID <2027768.KJJ5cu5LlV@xrated> (permalink)
References <7b020d1d-81d8-464f-8949-2cc858289e68n@googlegroups.com> <3836603.qn3WQ5yJgu@xrated> <ernsthaft-20220228193747@ram.dialup.fu-berlin.de>

Show all headers | View raw


Am Montag, 28. Februar 2022, 19:56:30 CET schrieb Stefan Ram:
> Hans-Peter Jansen <hpj@urpla.net> writes:
> >Wer ernsthaft grafische Beutzeroberflächen mit Python
> >programmieren will, kommt an PyQt nicht vorbei.
> 
>   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 
gewesen, daher besteht diese Notwendigkeit für mich nicht, bzw. habe dafür 
wirklich keine Zeit.

Habe mir die Python 3.10 Version von idle mal wieder angesehen, und was soll 
ich sagen. Einen Vorteil haben die tk-Sachen ja: sie sehen überall hässlich 
aus. Mein Sohn würde sagen, hey Papa, das ist so 90ies..

Na ja, die turtle graphics demo gefällt mir (hat aber ein Packaging-Problem 
offenbart, dass ich gleich mal fixen werde..).

>   Gerade wer als Anwender ernsthaft und effizient mit Software
>   arbeitet, schätzt es, wenn diese schnell über eine Standard-
>   oberfläche mit Menüs und Tastaturkürzeln zu bedienen ist.
>   Vielleicht erlaubt Qt so etwas auch, und es ist lediglich
>   so, daß es mehr von unterdurchschnittlichen Herstellern
>   verwendet wird, die so etwas nicht in der Oberfläche bereitstellen.

Shortcuts sind 1st class member der Oberflächenkonzepte in Qt, und erfordern 
in der Regel genau eine Zeile Code (Zuweisung eines Events zu einer Aktion).
Bei Menüs mit Shortcuts ist das gleich mit drin, und muss lediglich angegeben 
werden. 

Qt hat das Signals und Slots Konzept erfunden (soweit ich weiß), oder 
zumindest in der GUI Programmierung etabliert, welches später von GTK 
übernommen wurde, dort ist es aber nur übergestülpt (wie so vieles).
 
> >Lass Dir mal eine Datenbanktabelle mit 10000 Datensätzen
> >und 30 Feldern mit Tkinter anzeigen. Been there, done that.
> >No fun. Mit PyQt geht sowas, und läuft dann auch noch schnell
> 
>   Es ist meiner Meinung nach nicht unbedingt eine gute Idee,
>   vielen Datensätze alle in die GUI zu kopieren/binden.
>   Es gibt ja auch große Tabellen mit Milliarden von
>   Datensätzen, und spätestens dann wird man sich das
>   überlegen. Statt dessen könnte man immer nur die Datensätze,
>   die gerade angezeigt werden sollen, in die GUI kopieren/binden.
> 
>   Ich finde mit einer Web-Suchmaschine Seiten mit Titeln wie:
> 
> Why is Qt for Python so painfully slow even with a small table?
> 
> PyQt QTableView prohibitively slow when scrolling with large data sets
> 
> Slow initial show performance of QComboBox with large item count
> 
> PyQT QTableWidget extremely slow - Stack Overflow
> 
> PyQt5 Extremely Slow Scrolling on QTableView with pandas
> 
> Qt UI slow to respond even after using threads - Stack Overflow

Interessant, ja, ich gebe zu, das MVC Paradigma ist nicht immer leicht zu 
verstehen. Aber es gehört zu den leistungsfähigsten Prinzipien, um in einer 
GUI effizient mit großen Datenmengen umzugehen. Der Trick ist, möglichst wenig 
Python-Code zur Darstellung zu verwenden, womit dann große Teile mit C++ Speed 
ausgeführt werden. 

Ich habe sowas vor Urzeiten mit tkinter gemacht, musste dann aber alles zu Fuß 
programmieren (blocked fetching from database, caching, virtual scroll area).
Bis das alles funktionierte, hat es gedauert. 

In wxPython ging das schon besser, hakte dann aber in anderen Bereichen (z.B. 
Plattform-Unterschiede unter Mac/Win/Linux).

In PyQt hat dies ca. 1/20 des tkinter Codes gebraucht, und wird mit 
unfassbarer Geschwindigkeit ausgeführt, sieht viel besser aus, die Felder 
können direkt editiert werden (wo gebraucht), dynamische/Benutzer 
konfigurierbare Filterung ist auch kein Problem, und ist trotzdem viel weniger 
Code.

Drucken ist tatsächlich etwas aufwändiger, da flexible Pagination sowie 
überbreite Tabellen funktionieren müssen, aber Drucken ist immer eine 
Herausforderung, wenn Sachen nicht einfach paginiert werden können, und 
vielleicht auch noch gut aussehen sollen.

Beste Grüße,
Hans-Peter
--
Life without chameleons is possible, but pointless.


Back to de.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Mohsen Owzar <mohsen.owzar@gmail.com> - 2022-02-22 03:43 -0800
  [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Jan <janpeterr@freenet.de> - 2022-02-22 20:17 +0100
    Re: [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Mohsen Owzar <mohsen.owzar@gmail.com> - 2022-02-23 01:29 -0800
  Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Hermann Riemann <nospam.ng@hermann-riemann.de> - 2022-02-23 16:43 +0100
    Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Mohsen Owzar <mohsen.owzar@gmail.com> - 2022-02-23 10:34 -0800
      [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Jan <janpeterr@freenet.de> - 2022-02-23 19:49 +0100
        Re: [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Mohsen Owzar <mohsen.owzar@gmail.com> - 2022-02-24 22:04 -0800
          [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Jan <janpeterr@freenet.de> - 2022-02-25 17:48 +0100
            Re: [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Mohsen Owzar <mohsen.owzar@gmail.com> - 2022-02-25 09:08 -0800
  Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Hermann Riemann <nospam.ng@hermann-riemann.de> - 2022-02-23 17:03 +0100
    Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Hermann Riemann <nospam.ng@hermann-riemann.de> - 2022-02-24 03:27 +0100
    [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Hans-Peter Jansen <hpj@urpla.net> - 2022-02-26 18:39 +0100
      Re: [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Hermann Riemann <nospam.ng@hermann-riemann.de> - 2022-02-27 08:34 +0100
      [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input Hans-Peter Jansen <urmel@urpla.net> - 2022-03-01 16:19 +0100
        [Python-de] Re: Generierung dynamischer QLineEdit-Felder abhängig vom User-Input "Taniya khan" <taniyakhan7778@gmail.com> - 2022-05-12 04:59 +0000

csiph-web