Aplikacje GUI w Pythonie

0

Hej, chciałbym się nauczyć tworzyć aplikacje GUI w Pythonie. Zacząłem korzystać z modułu tkinter i wszystko jest OK ale nie podoba mi się jedna rzecz - ustawianie położenia widgetów. Używam zawsze komendy grid ale zastanawiam się czy nie istnieje jakiś sposób żeby móc widgety ustawić w jakimś graficznym okienku i po prostu je sobie poprzesuwać, porozciągać itp. Chyba że można zrobić tak że aplikacje się robi w jednym programie a funkcje do wywołania po wciśnięciu przycisku mogą być osobno napisane w Pythonie i jakoś to się łączy? Jaka jest najlepsza praktyka?

2

Jeśli wymagasz od GUI czegoś więcej, to najlepiej od razu rób w pyQt.

Tam możesz sobie widgety wyklikać w QtDesignerze i eksportować do Pythona.

1

TkInter - zgodzę się - jest do prostych zagadnień, proof of concept. domowych aplikacji na 5 widgetów itd ... (nawet jest wtedy fajny)
Ale nie w dużych projektach ... :(

1

pyqt5 lub kivy

0
Spine napisał(a):

Jeśli wymagasz od GUI czegoś więcej, to najlepiej od razu rób w pyQt.

Tam możesz sobie widgety wyklikać w QtDesignerze i eksportować do Pythona.

A jak wyeksportowałem plik z QtDesignera do Pythona i pododawalem różne funkcje to da się jakoś zmienić położenie widgetów znowu w GtDesignerze tak żeby ten dodany przez mnie kod pozostał?

I jak tak patrze to widzę że są jakies designery do tkinter. Jaka jest zatem główna przewaga wymienionych przez Was modułów nad tkinter?

0

Ja osobiście polecam PyQt lub pyside.

0
Jeż i przyjaciele napisał(a):

A jak wyeksportowałem plik z QtDesignera do Pythona i pododawalem różne funkcje to da się jakoś zmienić położenie widgetów znowu w GtDesignerze tak żeby ten dodany przez mnie kod pozostał?

O ile pamiętam, to ja nie modyfikowałem eksportowanego pliku, tylko dla każdego okienka pisałem klasę, która dziedziczy po eksporcie z QtDesignera. Wtedy eksportowane okienko jest odseparowane od kodu, który napiszesz.

0

@Jeż i przyjaciele: Tak, da się bazujesz na projekcie w QTdesingerze i na nowo zapisujesz plik i go podmieniasz.

1

Pomysł znad żurku (najzupełniej subiektywny) ...
Gdybym to robił - tu pierwszy element subiektywny, odgadywanie DLACZEGO planujesz Pythona - dla mnie duże projekty GUI to wyłącznie w językach statycznie typowanych ...
wiec - jeśli zgadnę - jeśli pomysł pythona to jakieś obliczenia naukowe, laboratoryjne itd - bym z kernela w C++ WYWOŁYWAŁ "naukowe" fragmenty pythona.

Po drugie bał bym się mostów / importów / kopiowań plikó do/z Qt, to architektonicznie wybitnie "tłuste" środowisko, preprocesory, te sprawy (GTK, Wx, z tych popularnych, są znacznie prostsze)

To jest ten sam C-Python, żadna tam maszyna wirtulana na innej zasadzie / innym silniku
https://docs.python.org/3/extending/embedding.html
Jest to proste, stabilne, i nie ma z tym jakiś kłopotów (używałem). Jak komuś notacja C przeszkadza, to są wrappery w C++

Ale to takie gdybanie w chmurach, bo @Jeż i przyjaciele nie mówisz o motywacjach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1