Menu użytkownika

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
AllanBradley
Posty: 12
Rejestracja: 03 lis 2013 00:05
Wersja środowiska: LabVIEW 2012

Menu użytkownika

Post autor: AllanBradley »

Witam .
Zastanawiam się w jaki sposób stworzyć coś w rodzaju GUI tak jak na zdjęciu .
Może mnie ktoś poprawić czy idę dobrym tropem wykorzystując OPEN VI REFERENCE .
Działa to tak ,że przechwytuje zdarzenie z kliknięcia i w ten sposób otwieram nowy VI.

Pozdrawiam i liczę na pomoc.
Załączniki
menu.png
menu.png (6.38 KiB) Przejrzano 11079 razy
event.png
AllanBradley
Posty: 12
Rejestracja: 03 lis 2013 00:05
Wersja środowiska: LabVIEW 2012

Re: Menu użytkownika

Post autor: AllanBradley »

Taki sposób działa ale bardziej chodzi mi o odpowiedź czy takie rozwiązanie jest powszechnie stosowane.
milten
Posty: 77
Rejestracja: 25 paź 2011 20:49
Wersja środowiska: LabVIEW 2012

Menu użytkownika

Post autor: milten »

Jest dobry.
jedyne co bym zmienił, to uruchamianie tego VI-a na samym początku aplikacji i ukryć go a w zdarzeniu tylko pokazywać okno.
W twoim przypadku jeżeli w tym VI-u będziesz miał inicjalizacje, która potrwa na przykład 3 sekundy, to użytkownik może pomyśleć, że aplikacja się zacięła i będzie dalej klikał.
Oczywiście jak użytkownik będzie chciał zamknąć okno, to musisz przechwycić zdarzenie i je tylko ukryć.
Obrazek
AllanBradley
Posty: 12
Rejestracja: 03 lis 2013 00:05
Wersja środowiska: LabVIEW 2012

Re: Menu użytkownika

Post autor: AllanBradley »

milten pisze: Jest dobry. jedyne co bym zmienił, to uruchamianie tego VI-a na samym początku aplikacji i ukryć go a w zdarzeniu tylko pokazywać okno.
Nie za bardzo zrozumiałem możesz sprecyzować ?

Drugie pytanie:
Jeśli zrobię aplikację w ten sposób to po mimo przejścia do następnego podprogramu main.Vi ( ten z wyborem menu )nadal jest otwarty . Przy próbie zamknięcia go
za pomocą Open VI Reference -> invok node -> close pojawia się Error iż nie można zamknąć głównego okna. Jest jakiś sposób na to ???
milten
Posty: 77
Rejestracja: 25 paź 2011 20:49
Wersja środowiska: LabVIEW 2012

Re: Menu użytkownika

Post autor: milten »

Szybciej będzie to wyjaśnić na przykładzie.

Jako, że na końcu programu okno.vi jest zamykany w sposób brutalny (Abotr VI), to musisz pamietać o tym, że żadna z referencji itp nie może być otwarta w okno.vi, bo po abort będą one nadal w pamięci, czego nie chcesz :P
Możesz dodać w komunikacji pomiędzy tymi dwoma oknami jakies polecenie, które będzie kończyć tą pętle while (mi chodziło o koncept a nie o 100% poprawności programowania). Wtedy nie musisz robić już Abort VI.
Załączniki
okna.zip
(25.78 KiB) Pobrany 381 razy
Obrazek
AllanBradley
Posty: 12
Rejestracja: 03 lis 2013 00:05
Wersja środowiska: LabVIEW 2012

Re: Menu użytkownika

Post autor: AllanBradley »

Dzięki za zainteresowanie.
Nadal mam kilka pytań :

1) W jakim celu użyłeś abort VI ?
2) Dwukrotne użycie Build Path Function w main.vi jest konieczne ?
3) Co zrobić by po otwarciu okna.vi zamknąć całkowicie main.vi tak by nie było go widać na pasku skrótów ( tak jak to wygląda w normalnych aplikacjach ).

Pozdrawiam.
milten
Posty: 77
Rejestracja: 25 paź 2011 20:49
Wersja środowiska: LabVIEW 2012

Menu użytkownika

Post autor: milten »

1. Abort VI użyłem, żeby zakończyć okno.vi. Jest tam nieskończona pętla i tylko w taki sposób sa się zamknąć tego VI-a jak się go uruchomi. Lepszym wyjściem było by przekazanie do okno.vi polecenia do zakończenia (na przykład kolejką).
2. Jeden to jest Strip Path a drugi to Build Path. W pierwszym wyciągam ścieżkę do folderu w którym znajdują się pliki, a w drugim robię ścieżkę do okno.vi. To jest chyba najlepszy sposób na zrobienie czegoś takiego. Najlepiej zobacz co idzie w którym kablu, to powinieneś wiedzieć o co dokładnie chodzi.
3. Przekopiuj to co znajduje się w Evencie Panel Close? w okno.vi i będzie działać. Ale i tak musisz zamknąć jakoś tego VI-a, bo będzie siedział w pamięci cały czas.

Hmm może opisz dokładniej co twoja aplikacja powinna robić. Zakładałem, że chcesz zrobić po prostu okno z osobnymi ustawieniami, ale widzę, że nie o to chodzi.
Ostatnio zmieniony 03 lis 2013 20:59 przez milten, łącznie zmieniany 1 raz.
Obrazek
AllanBradley
Posty: 12
Rejestracja: 03 lis 2013 00:05
Wersja środowiska: LabVIEW 2012

Re: Menu użytkownika

Post autor: AllanBradley »

Po prostu chciałem zrobić aplikację z menu użytkownika ale nie chcę by przy wybieraniu odp. opcji w zakładkach gromadziły się nie zamknięte okna ,tylko w miarę możliwości labview wyglądało to na płynne przejścia tak jak to jest np. w smartphonach , aplikacjach pisanych w C++ itd.
milten
Posty: 77
Rejestracja: 25 paź 2011 20:49
Wersja środowiska: LabVIEW 2012

Menu użytkownika

Post autor: milten »

W tym przypadku lepiej sprawdzi się Tab Control (Modern->Containers). Wciśnięcie przycisku powoduje zmianę zakładki. Znacznie łatwiejsze i całe GUI masz w jednym VI-u.
Obrazek
AllanBradley
Posty: 12
Rejestracja: 03 lis 2013 00:05
Wersja środowiska: LabVIEW 2012

Re: Menu użytkownika

Post autor: AllanBradley »

Dzięki . Faktycznie tab control sprawdzi się dużo lepiej. Czasami mam wrażenie ,że w labview wszystko jest gotowe tylko problem polega na znalezieniu tego. Po prostu zapomniałem o istnieniu tego contenera.
ODPOWIEDZ