(22-09-2011, 00:02)borys napisał(a): W Designerze możesz podłączać sygnały z jednych widgetów bezpośrednio do slotów innych widgetów (np. sygnał pressed z klawisza do slotu clear linii edycyjnej albo close całego okna), ale wiele więcej się w ten sposób nie zdziała.
To, czego potrzebujesz to, jak mniemam, podłączyć sygnał z widgetu do własnej funkcji, która po przeanalizowaniu stanu tego widgetu podejmie stosowne kroki, np. ustawiając inny widget. W tym celu musisz napisać dwie funkcje. Pierwsza to ta, która ma być wykonana po nadejściu sygnału, zaś druga, to funkcja inicjalizująca formularz. Jej zadaniem jest, poza wstępnym ustawieniem widgetów, właśnie podłączenie sygnałów do własnoręcznie napisanych funkcji. To właśnie tę funkcję inicjalizującą podajemy w tajemniczym polu 'inicjacja formularza' (z bykiem - o czym ja myślałem, tłumacząc ten napis... ) we właściwościach warstwy.
Tu jest opis: http://woostuff.wordpress.com/2011/09/05...hon-logic/
Może nie jest najprostszy, ale na pierwszym listingu widać funkcję formOpen, a w niej podłączenie syngału accepted z buttonBoxa do zdefiniowanej zaraz potem funkcji validate:
buttonBox.accepted.connect(validate)
Ten kod jest zapisany w pliku RoadForm.py i wrzucony do tego samego katalogu, w którym jest plik projektu. Na pierwszym zrzucie po tym listingu widać wywołanie funkcji formOpen we właściwościach warstwy: nazwa pliku bez rozszerzenia - kropka - nazwa funkcji.
Tak właśnie mi się wydawało, że w Designerze nie można zrobić takiego szacher-macher
Na artykuł, który podałeś w linku trafiłem już wcześniej ale nie bardzo rozumiem co tam jest czym - może dlatego, że nie znam pythona w ogóle i nie umiem się posługiwać jego składnią
(kiedyś bawiłem się tylko trochę w delphi). Żeby zacząć coś samemu potrzebuję najprostszego skryptu z wyjaśnieniem co jest co i ewentualnie zaznaczeniem co do czego się odwołuje, wtedy może jakoś uda mi się z tym wystartować. Jak komuś z Was się będzie chciało takie coś zrobić to będę wdzięczny
. Taki rodzaj inicjacji....