Kirjoittaja Aihe: Python kysymys: Tkinter vs PyQt?  (Luettu 3413 kertaa)

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Python kysymys: Tkinter vs PyQt?
« : 24.08.23 - klo:11.50 »
Moi!

Olen päässyt hieman sisälle tuohon Tkinter-maailmaan ja eka ohjelma sillä juuri työn alla. Tein aluksi aika simppelin sivun:Menu-valikot, muutama comobo-box, entry, nappula ja text-ruutu. 5kpl frameja ja organisoitu pack-funktiolla. Taustalla sitten tietokanta ja muu ohjelmalogiikka. Tulee ehkä noin 200 riviä tuolle GUI:lle kokoa.

Sitten lueskelin asiasta ja pythonille olisi saatavissa tuo PyQt-kirjastokin. Siitä pari kysymystä:
- Onko sen perusperiaate sama kuin Tkinterissa, eli luodaan widgettejä ja niiden muuttujien kautta siirretään tietoa muulle onhelmalogiikalle?
- Jos opettelen kohtuullisesti tuon Tkinterin, niin helpottaako siirtymistä PyQt-maailmaan
- Mikä noilla on se olennaisin ero? Onko PyQt paremmin säädettävissä ja tyyliteltävissä kuin Tkinter? Videota ja muuta animaatiota se tukenee myös paremmin?
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

kamara

  • Käyttäjä
  • Viestejä: 3015
    • Profiili
Vs: Python kysymys: Tkinter vs PyQt?
« Vastaus #1 : 24.08.23 - klo:14.24 »
Sitten lueskelin asiasta ja pythonille olisi saatavissa tuo PyQt-kirjastokin. Siitä pari kysymystä:
- Onko sen perusperiaate sama kuin Tkinterissa, eli luodaan widgettejä ja niiden muuttujien kautta siirretään tietoa muulle onhelmalogiikalle?
- Googlaamisen perusteella näyttäisi jokseenkin olevan. (Itse käytän tkinteriä), mutta hyppäys PyQt:hen ei näyttäisi olevan suuren suuri. PyQt-versioita näkyy olevan 4:sta aina 6:een saakka.

- Jos opettelen kohtuullisesti tuon Tkinterin, niin helpottaako siirtymistä PyQt-maailmaan
- Googlaamisen perusteella helpottaa. Suuria rakenteellisia eroja ohjelmoinnin perusteella ei näyttäisi löytyvän.

Jos olet siirtymässä PyQt:hen, niin miksi haaskaat aikaasi Tkinteriin ?
Itse en tarvitse Qt-karkkia niin paljoa, niin olen valinnut Tkinterin, jolloin ei tarvitse ladata Qt-kirjastoja ohjelmointia varten. Tosin en muista tarvitsiko Tkinteriin asentaa jotain kirjastoja.

- Mikä noilla on se olennaisin ero? Onko PyQt paremmin säädettävissä ja tyyliteltävissä kuin Tkinter?
- Eri ohjelmoijat, ehkä lisenssieroja löytyy. Luultavasti on.

- Videota ja muuta animaatiota se tukenee myös paremmin?
- Ei tietoa.

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Python kysymys: Tkinter vs PyQt?
« Vastaus #2 : 24.08.23 - klo:14.57 »
Jos olet siirtymässä PyQt:hen, niin miksi haaskaat aikaasi Tkinteriin ?

En mielestäni haaskaa aikaani, vaan opiskelen ohjelmoimaan. Tkinder etu on mm. siinä, ettei sen käyttäminen vaadi mitään lisäasennuksia, vaan tarvittava kirjasto on osa pythonin perusjakelua.

Toinen etu on siinä, että käyttö on melko yksinkertaista. En tiedä olisiko se yhtä yksinkertaista PyQt:llä, kun kokemus on vain siitä, että hieman pyöritellyt sitä Designeria, jolla voi luda graafisia ikkunoita. Se ainakin tuottaa melkoisen määrään koodirivejä.

Ja ohjelmoinnin kannalta on olennaista ymmärtää tämä graafisen käyttöliittymän tuoma tapahtumakeskeinen logiikka ja osata jakaa asian oikeiin moduleihin/luokkiin. Eli Tkinterin ohessa tulee opiskelua paljon muitakin asioita.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

kamara

  • Käyttäjä
  • Viestejä: 3015
    • Profiili
Vs: Python kysymys: Tkinter vs PyQt?
« Vastaus #3 : 24.08.23 - klo:19.00 »
En mielestäni haaskaa aikaani, vaan opiskelen ohjelmoimaan. Tkinder etu on mm. siinä, ettei sen käyttäminen vaadi mitään lisäasennuksia, vaan tarvittava kirjasto on osa pythonin perusjakelua.

Kai siinä pitää olla asennettuna: "python3-tk" ?

Tosin se tuli 2022.04 LTS:n mukana suoraan asennettuna.

Toinen etu on siinä, että käyttö on melko yksinkertaista. En tiedä olisiko se yhtä yksinkertaista PyQt:llä, kun kokemus on vain siitä, että hieman pyöritellyt sitä Designeria, jolla voi luda graafisia ikkunoita. Se ainakin tuottaa melkoisen määrään koodirivejä.

Eiköhän nuo mammuttitaudit ole yleisiä, jos käyttää Designereita.
Näytti tuo Qt:n HelloWorld.py olevan pari riviä pitempi, kuin Tkinterin, mutta sen vielä jaksaa kirjoittaa.

Koodia: [Valitse]
import tkinter

app = tkinter.Tk()
app.mainloop()

Koodia: [Valitse]
from PyQt6.QtWidgets import QApplication, QWidget

app = QApplication([])
window = QWidget()
window.show() # Tämän rivin kaipaa lisäksi.
app.exec()
« Viimeksi muokattu: 24.08.23 - klo:20.21 kirjoittanut kamara »