Portál AbcLinuxu, 12. května 2025 06:38

Dotaz: GUI pro Python a C - Tk nebo Gtk

22.1.2009 21:38 cebona
GUI pro Python a C - Tk nebo Gtk
Přečteno: 1135×
Odpovědět | Admin

Dobrý den,

Programuji v C a Pythonu, jako GUI jsem si zvolil Qt - zcela mi vyhovuje, nicméně jeho licence až tak ne. Proto hledám nový GUI nástroj. Jedná se mi o to, aby jej bylo možné bez problému použít i pod Windows a jeho syntaxe stejná - podobná jak v C tak i v pythonu. Zkoušel jsem v pythonu Tk, zdá se být docela jednoduché.. Nicméně o Gtk nevím nic a tak si nejsem jist, že Tk je ta správná volba - není Tk tak už trochu mimo? Doporučili byste Tk nebo Gtk. Děkuji.. Jen seriézní odpovědi prosím  (doporučuji toto, protože..)

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.1.2009 02:36 kvutza | skóre: 2
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk
Odpovědět | | Sbalit | Link | Blokovat | Admin

Nebude mít PyQt stejnou změnu licence (na LGPL) jako Qt?

Tkinter je jednoduchý, ale je ugly (neplatí tolik od verze Tcl/Tk 8.5, s tile, v Pythonu od 2.6). Navíc některé věci v Tk prostě nejsou. Jako jediný je ale standardní součást pythonního balíku.

Znáte wxPython? Doporučuje jej Guido, je to multi-native-platformní, ale styl programování v něm je MFCish.

 

kozzi avatar 23.1.2009 09:38 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk
Odpovědět | | Sbalit | Link | Blokovat | Admin
jak uz zde bylo receno Qt bude mit stejnou licenci jako GTK, tedy LGPL, ktera je imho velmi vhodna. Jinak pokud programujes v C, tak Qt je imho spis pro C++, takze potom je pro tebe vhodnejsi GTK to je psánov C. Tk se dá použít, ale raději bych se mu vyhnul. WxWidgets (wxpython) bych taky asi moc nedoporucoval. V dnesni dobe je nejlepsi to Qt, ale nevim zda se da pouzivat s obyc Ceckem.
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
27.1.2009 22:19 cdebona
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk

Qt a GTK stejnou licenci?? GTK ma GPL, ale Qt ma dvoji liceni, LGPL pro open a pak komercni licenci.

kozzi avatar 27.1.2009 22:43 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk

GTK+ is a highly usable, feature rich toolkit for creating graphical user interfaces which boasts cross platform compatibility and an easy to use API. GTK+ it is written in C, but has bindings to many other popular programming languages such as C++, Python and C# among others. GTK+ is licensed under the GNU LGPL 2.1 allowing development of both free and proprietary software with GTK+ without any license fees or royalties.

Espoo, Finland -- Nokia today announced that its Qt cross-platform User Interface (UI) and application framework for desktop and embedded platforms will be available under the Lesser General Public License (LGPL) version 2.1 license from the release of Qt 4.5, scheduled for March 2009. Previously, Qt has been made available to the open source community under the General Public License (GPL) license. In addition, Qt will now be available from the new domain, www.qtsoftware.com.

Tak už je ti to doufám jasné, že Qt i GTK+ mají (budou mít) stejnou licenci
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
6.2.2009 14:27 Jirka
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk

Jo jo, jednou to bude zadarmo. Možná. http://www.qtsoftware.com/downloads

free - Komerce 0, integrace s Visual Studiem 0, podpora 0, licencování 0.
komerce - drahý jak prase.

Chce někdo přepsat svůj majetek na Stallmana? Do toho. A ve¨volném času můžete třeba zametat chodníky.

1. rm -rf /
2. Insert a Install Vista DVD
3. Install Visual Studio Express + Server

 

6.2.2009 17:29 ...............23 | skóre: 15 | blog: Various Stuff blog
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk
To prestane platiť od najbližej verzie, ktorá vyjde do mesiaca +/- pár týždňov
Pavel Stárek avatar 6.2.2009 16:36 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk
Odpovědět | | Sbalit | Link | Blokovat | Admin
No to je jednoduché. Buď si počkáš na Qt 4.5 které by mělo mít licenci LGPL. Nebo používej GTK. V pythonu je sice syntaxe pro GTK trošku jiná než pro C, ale je to téměř shodné.

Kód v pythonu:
import gtk
okno = gtk.Window(gtk.WINDOW_TOPLEVEL)
okno.show()
gtk.main()
Kód v C:
#include <gtk/gtk.h>

int main( int argc, char *argv[] ) {

  GtkWidget *okno;

  okno = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_widget_show (window);
  gtk_main();
  return 0;
}
Sám sice Qt nepoužívám, ale jedno musím uznat, má celkem dobře zpracovanou dokumentaci (je vidět, že za tím stojí komerční firma). GTK a PyGTK mají sice taktéž dokumentaci, ale není to tak pěkně zpracované jako u toho Qt.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
6.2.2009 18:28 licence
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk

Pozor, je rozdíl mezi licencemi Qt a PyQt. U PyQt se vůbec nic nezměnilo a ani se to neočekává. Takže pokud někdo používá PyGtk i kvůli licenci, ten nemá důvod měnit.

A abych odpověděl ještě na původní dotaz: jiné toolkity než Gtk nebo Qt jsou opravdu mimo a nečekám, že by některý z nich povstal z popela.

6.2.2009 19:40 ...............23 | skóre: 15 | blog: Various Stuff blog
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk
Ja mám síce python u riti, ale imho vytvoriť binding nemôže byť _až_tak_ náročné (že by to nikto okrem PyQt nespravil), nie?
6.2.2009 20:57 JeCh
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk

Já jsem zkoušel PyQt i PyGTK. Nakonec jsem si vybral PyGTK, protože má lepší dokumentaci a je pro něj pěkný oficiální návod s příklady. Qt jako tako takové má pěknou dokumentaci, ale pro PyQt jsem nic rozumného pro začátečníka nenašel.

Pavel Stárek avatar 7.2.2009 13:11 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: GUI pro Python a C - Tk nebo Gtk
No s PyQt dokumentací máš tak trošku pravdu: není tak pěkně zpracovaná jako originál Qt - ale vychází se z toho, že je to "téměř" shodné s Qt, takže lze nahlédnout tam. Avšak to samé platí o PyGTK a GTK, občas používám obě. Pro svoje "aplikace" jsem si vybral PyGTK ale je pravda, že mi u některých jeho principů připadá, že proč to lze dělat jednoduše, když to můžeme dělat složitě.

Příklad - změna barvy textu v gtk.Entry (textové zadávací políčko):
self.entry2.modify_text(gtk.STATE_NORMAL, gtk.gdk.color_parse("#000000"))
Místo jednoduššího (například):
self.entry2.set_fg_color("#000000")
nebo ještě jednoduššího:
self.entry2.fg_color="#000000" #popř. gtk.COLOR_BLACK
Už jen název té metody je absolutně zavádějící, jeden by si představoval, že metoda modify_text bude nějak modifikovat text, ale né jeho barvu.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.