[SOLVED] [QT] rozciągnięcie obiektu na całe okno
- Kiro
- Wytworny Kaczor
- Posty: 340
- Rejestracja: 06 lis 2007, 12:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.10
- Środowisko graficzne: Unity
- Architektura: x86_64
[SOLVED] [QT] rozciągnięcie obiektu na całe okno
Witam.
Bawię się z QT. Wcześniej korzystałem z podobnych środowisk: Delphi oraz VB. W QT mi się przyjemnie pracuję, jednak mam pewien nierozwiązany problem.
W jaki sposób mogę rozciągnąć obiekt (np tabelę, czy listę) tak by wypełniała całą przestrzeń? Lub tylko całą przestrzeń w pionie/poziomie? Tak by bez względu jak użytkownik sobie będzie manipulował wielkością okna, to obiekt nie wychodzi poza to okno ani nie zostawia wolnego miejsca?
W ww językach dało się to zrobić przez proste zaznaczenie odpowiedniej opcji w edytorze. Tu takowej nie widzę. Proszę o radę.
//pozdrawiam pinokio999
Bawię się z QT. Wcześniej korzystałem z podobnych środowisk: Delphi oraz VB. W QT mi się przyjemnie pracuję, jednak mam pewien nierozwiązany problem.
W jaki sposób mogę rozciągnąć obiekt (np tabelę, czy listę) tak by wypełniała całą przestrzeń? Lub tylko całą przestrzeń w pionie/poziomie? Tak by bez względu jak użytkownik sobie będzie manipulował wielkością okna, to obiekt nie wychodzi poza to okno ani nie zostawia wolnego miejsca?
W ww językach dało się to zrobić przez proste zaznaczenie odpowiedniej opcji w edytorze. Tu takowej nie widzę. Proszę o radę.
//pozdrawiam pinokio999
-
- Sędziwy Jeż
- Posty: 30
- Rejestracja: 06 mar 2009, 14:22
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.10
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [QT] rozciągnięcie obiektu na całe okno
poczytaj o QResizeEvent.
utwórz metodę: void resizeEvent(QResizeEvent *event);
wywoływana jest ona zawsze w momencie zmiany wielkości okna, więc w implementacji tej metody po prostu zmieniaj wielkość np tabeli wg rozmiaru "event" który dostajesz jako parametr funkcji. Czyli np. cos takiego
utwórz metodę: void resizeEvent(QResizeEvent *event);
wywoływana jest ona zawsze w momencie zmiany wielkości okna, więc w implementacji tej metody po prostu zmieniaj wielkość np tabeli wg rozmiaru "event" który dostajesz jako parametr funkcji. Czyli np. cos takiego
Kod: Zaznacz cały
resizeEvent(QResizeEvent *event)
{
tabelka->setBaseSize(event->width(),event->height());
}
- Kiro
- Wytworny Kaczor
- Posty: 340
- Rejestracja: 06 lis 2007, 12:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.10
- Środowisko graficzne: Unity
- Architektura: x86_64
Odp: [QT] rozciągnięcie obiektu na całe okno
Ale nie jest obejście naokoło zwiększające znacznie zużycie zasobów?
-
- Piegowaty Guziec
- Posty: 12
- Rejestracja: 08 cze 2010, 10:20
- Płeć: Mężczyzna
- Wersja Ubuntu: 8.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [QT] rozciągnięcie obiektu na całe okno
Użyj metody setCentralWidget() klasy QMainWindow, natomiast jeżeli stosujesz designer to wstaw docelowy widget kliknij na wolną przestrzeń QMainWindow uruchom menu kontekstowe wybierz pozycje, która znajduje się na samym dole. Następnie zaznacz wg poziomu/pionu.
- Kiro
- Wytworny Kaczor
- Posty: 340
- Rejestracja: 06 lis 2007, 12:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.10
- Środowisko graficzne: Unity
- Architektura: x86_64
Odp: [QT] rozciągnięcie obiektu na całe okno
Na działa mi ten sposób na desingera.
-
- Serdeczny Borsuk
- Posty: 176
- Rejestracja: 09 kwie 2008, 11:40
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [QT] rozciągnięcie obiektu na całe okno
Tworzysz nowy projekt w Qt-Designe taki żeby miał formularz. Zaznacza się to podczas tworzenia projektu. Następnie wybierasz formularz w projekcie. Otwiera się okno twojej aplikacji. Do tego okna przenosisz layout (znajdują się one na lewo od tworzonego okna). Po prawej stronie masz spis wszystkich obiektów które znajdują się w oknie. Klikasz prawym na MainWindow i wybierasz rozmieść i następnie któryś ze sposobów rozmieszczania. Teraz można dodawać layouty i inne obiektu a one będą się automatycznie rozmieszczały w oknie. Jeśli nie chcesz tego doribć w Qt-Designer to zainteresuj się funkcją setCentralWidget().
- Kiro
- Wytworny Kaczor
- Posty: 340
- Rejestracja: 06 lis 2007, 12:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.10
- Środowisko graficzne: Unity
- Architektura: x86_64
Odp: [QT] rozciągnięcie obiektu na całe okno
Tak, to się rozmieszczają. Ale się nie rozciągają.
-
- Serdeczny Borsuk
- Posty: 176
- Rejestracja: 09 kwie 2008, 11:40
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [QT] rozciągnięcie obiektu na całe okno
A próbowałeś tak jak napisałem? u mnie się rozciągają. Oto przykład:
http://dl.dropbox.com/u/3283435/zrzut_ekranu1.png
http://dl.dropbox.com/u/3283435/zrzut_ekranu2.png
http://dl.dropbox.com/u/3283435/zrzut_ekranu1.png
http://dl.dropbox.com/u/3283435/zrzut_ekranu2.png
- Kiro
- Wytworny Kaczor
- Posty: 340
- Rejestracja: 06 lis 2007, 12:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.10
- Środowisko graficzne: Unity
- Architektura: x86_64
Odp: [QT] rozciągnięcie obiektu na całe okno
Dobra, teraz zrozumiałem patrząc na obrazki. Muszę jeszcze to dokładniej rozkmicić. Dzięki za pomoc.
-
- Serdeczny Borsuk
- Posty: 176
- Rejestracja: 09 kwie 2008, 11:40
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [SOLVED] [QT] rozciągnięcie obiektu na całe okno
Jak będziesz miał z tym problem pisz, pomogę.
- Kiro
- Wytworny Kaczor
- Posty: 340
- Rejestracja: 06 lis 2007, 12:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.10
- Środowisko graficzne: Unity
- Architektura: x86_64
Odp: [SOLVED] [QT] rozciągnięcie obiektu na całe okno
Ogólnie jakoś mi się wydaje że QT jest mało intuicyjne, trzeba się nasiedzieć w dokumentacji. Znaleźć jakieś funkcje to masakra..
-
- Serdeczny Borsuk
- Posty: 176
- Rejestracja: 09 kwie 2008, 11:40
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [SOLVED] [QT] rozciągnięcie obiektu na całe okno
Może na początku. Ja teraz już większość rozumiem i nie jest takie trudne. Gorsze dla mnie jest np WinAPI. Napisałem kilka programów i nie chce mieć z nim nic wspólnego.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości