2011-06-23 9 views
5

Próbuję obliczyć rzeczywisty rozmiar potrzebny do uicontrols w GUI, więc GUI może odpowiednio zmienić rozmiar. Mój problem polega na tym, że właściwość Extent uicontrol to tylko obszar tekstowy i nie mogę znaleźć sposobu na określenie rozmiaru otaczającej kontroli (takiej jak strzałka w dół w wyskakującym okienku lub margines kontrolki edycji). Czy istnieje sposób na uzyskanie rozmiaru dekoracji na kontrolerze?Obliczanie rzeczywistego rozmiaru potrzebnego do MATLAB uicontrol

Widziałem this related question na MATLAB Answers, który wyglądał tak, jakby kończył się bez żadnego rozwiązania.

Edit:

Na przykład, aby obliczyć, jak duża to okienko powinno być unikanie odcinając zawartość:

uicontrol('style', 'popup', 'string', {'a long string'}) 

Zakres tylko mówi mi, jak wielkie „długi łańcuch” jest i nadal nie wiem, jak duże by było wyskakujące okienko. Chcę określić, ile dodatkowego miejsca jest potrzebne na ekranie użytkownika (bez zakładania, którego systemu operacyjnego lub rozmiarów czcionek używają).

Odpowiedz

0

Właściwość uicontrol Position daje wysokość i szerokość prostokąta ograniczającego dla elementu sterującego. To zawsze działa dla mnie. Czy istnieje kontrola, w której ta właściwość nie zapewnia wystarczających informacji?

+0

Pozycja wskazuje aktualny rozmiar kontrolki. Nie mówi nic o wielkości wymaganej kontroli. Edytowałem pytanie, aby dodać przykład problemu. –

0

Jeśli GUI, które budujesz, można zmontować wyłącznie ze składników Java, możesz użyć integracji Java MATLAB, aby utworzyć i sterować oknem za pomocą komponentów Java Swing (wszystkie z kodu M). To całkowicie rozwiązuje problem, ponieważ menedżerowie układu Java mogą poprawnie tworzyć układ interfejsu użytkownika.

1

Możesz użyć get (hObject, 'extent'), aby dowiedzieć się, ile miejsca zajmuje ciąg kontrolujący uicontrol. Możesz zobaczyć, czy jest większy niż pozycja uicontrola.

+1

Jak zauważyłem w moim pytaniu, właściwość extent mówi tylko o przestrzeni zajmowanej przez ciąg znaków. Kontrola otaczająca ciąg wymaga dodatkowej przestrzeni. Jeśli pozycja jest równa zakresowi, kontrola jest już za mała. –

Powiązane problemy