Automatyczna zmiana szerokości kolumn

Odpowiedz Nowy wątek
2012-02-09 22:36
0

Mam problem a mianowicie mam QTreeView jak w załączniku i chciałbym zrobić aby rozmiary szerokości kolumn same się dopasowywały podczas rozciągania okna z tym, że 1 i 3(ostatnia) kolumna mają zawsze taki sam rozmiar a poszerza się tylko środkowa część, no i nie mam planu jak to zrobić :D

  • asd.png (0,01 MB) - ściągnięć: 57

Pozostało 580 znaków

2012-02-10 00:20

Toć to żadna filozofia...ot reimplementacja resizeEventu widoku.Jedyny myk jaki należy znać to pobieranie szerokości dostępnego miejsca-robi się to poprzez viewport()->width().Mając tą wielkość bez problemu wyliczasz sobie szerokość poszczególnych kolumn wg jakowyś ustaleń,a ustawisz ją starym,poczciwym setColumnWidth().Ot na przykład:

void YourView::resizeEvent(QResizeEvent *e)
{
   QTableView::resizeEvent(e);//zakładając,że twój widok od tabeli pochodzi
   int w=viewport()->width();//a ta sztuczka jest istotna o tyle,że uwzględnia wszelakie scroll bary i headery widoku
   int c1=w/2;//przyjmijmy,że chcemy aby 1 kolumna zabierała połowę dostępnego miejsca
   int c2=w/4;//2 kolumna ma mieć 1/4 szerokości widoku
   int c3=w-c1-c2;//pozostałe miejsce przydziel tej
   setColumnWidth(0,c1);
   setColumnWidth(1,c2);
   setColumnWidth(2,c3);
}

EDIT:
Poczekaj moment,bo skoro 2 kolumny mają stały rozmiar to winno dać się jeszcze prościej,ale muszę w dokumentację zerknąć.

EDIT2:
No i już wiadomo.
Odpowiedzią na zagadkę jest QHeaderView::setResizeMode() wraz z enumem ResizeMode (polubisz zwłaszcza Fixed i Stretch) :]


"Sugeruję wyobrazić sobie Słońce widziane z orbity Merkurego, a następnie dupę tej wielkości. W takiej właśnie dupie specjalista ma teksty o wspaniałej atmosferze, pracy pełnej wyzwań i tworzeniu innowacyjnych rozwiązań. Pracuje się po to, żeby zarabiać, a z resztą specjalista sobie poradzi we własnym zakresie, nawet jeśli firma mieści się w okopie na granicy obu Korei."
-somekind,
konkretny człowiek-konkretny przekaz :]
edytowany 3x, ostatnio: MasterBLB, 2012-02-10 02:29
Z czego uczyłeś się Qt? bo wszystko wiesz :D - mto9 2012-02-10 15:44
Z Qt Assistanta.Serio.Ale fakt faktem,miałem na początku mentora,który mi doradzał w podobnym stylu w jakim ja odpowiadam - przeczytaj w Assistancie to i tamto,obacz sobie klasę X,a zwłaszcza X::y() itd.Do tego potem praktyka we własnym zakresie (Graphics Framework)...ale wszystkiego nie wiem,np QXMLem się nie bawiłem,ani WebKitem ani jakoś szczególnie Network Modulem.Niemniej,Assistanta mam obczajonego na tyle dobrze,że w 99,5% przypadków sam sobie znajdę rozwiązanie problemu. - MasterBLB 2012-02-10 16:38
Tak zrobię :) - mto9 2012-02-11 13:14

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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