eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingQt: Szerokość splitteraRe: Qt: Szerokość splittera
  • Data: 2012-02-29 09:24:27
    Temat: Re: Qt: Szerokość splittera
    Od: Przemysław Adam Śmiejek <n...@s...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 29.02.2012 09:45, Tomasz D pisze:
    > W dniu środa, 29 lutego 2012, 08:31:28 UTC+1 użytkownik Przemysław Adam Śmiejek
    napisał:
    >> Witam,
    >>
    >> zachciało mi się ostatnio pouczyć trochę Qt. I tak na początek
    >> chciałem sobie zrobić w oknie dwa elementy oddzielone splitterem do
    >> przesuwania ich szerokości. Zrobiłem to tak:
    >>
    >>
    >> QSplitter *splitterPoziomy = new QSplitter(widget);
    >> splitterPoziomy->addWidget( etykieta1 );
    >> splitterPoziomy->addWidget( etykieta2 );
    >> splitterPoziomy->setOrientation(Qt::Vertical);
    >>
    >> i wszystko działa, tylko szerokość tych elementów na starcie jest
    >> JakaśTam. A chciałbym określić osobiście, że część 1 ma być np. 200px, a
    >> część 2 pozostałą szerokość. Czy ktoś mógłby mi podpowiedzieć, jak to
    >> zrobić? Nie umiem się dopatrzeć żadnej właściwości QSplittera, która by
    >> to regulowała.
    >>
    >
    > Jedna opcja to taka, żeby ograniczyć maksymalny rozmiar jednego z widgetów i
    ustawić mu size policy.

    Ale nie chcę ograniczać rozmiaru, tylko chcę, żeby na starcie było np.

    100px | reszta

    a jak user zechce sobie rozciągać na więcej, to OK. Chodzi o to, żeby
    ustawić na starcie położenie splittera (docelowo będzie wczytywane jako
    konfiguracja). Tak jak w Thunderbirdzie np. po lewej drzewko wąskie, po
    prawej wiadomości szerokie. I drzewko da się splitterem powiększać, ale
    po uruchomieniu ma wąskie i już.

    > Ewentualnie możesz proporcjonalnie podzielić sekcje splittera:
    > sp->setStretchFactor(0, 1);
    > sp->setStretchFactor(1, 5);
    > Po tym wywołaniu proporcje lewego do prawego będą 1:5

    Hm... Wpisałem i dla pionowego zero różnicy. Nadal mam podział pół na pół.
    A dla poziomego to w ogóle zniknęła mi gdzieś dolna część. Pełny kod mam
    taki:

    personFinder = new QLineEdit;
    QVBoxLayout *personLayout = new QVBoxLayout;
    personLayout->addWidget(personFinder);
    personLayout->addWidget(editText2);
    QWidget *widgetLeft = new QWidget;
    widgetLeft->setLayout( personLayout );

    // splitery
    QSplitter *splitterPoziomy = new QSplitter(widget);
    splitterPoziomy->addWidget( etykieta1 );
    splitterPoziomy->addWidget( etykieta2 );
    splitterPoziomy->setOrientation(Qt::Vertical);

    splitterPoziomy->setStretchFactor(0, 1);
    splitterPoziomy->setStretchFactor(1, 5);

    QSplitter *splitterPionowy = new QSplitter(widget);
    splitterPionowy->addWidget( widgetLeft );
    splitterPionowy->addWidget( splitterPoziomy );

    Ma z tego powstać aplikacja o wyglądzie takim: po lewej wąska lista
    osób, nad tą listą edytorek do wyszukiwania osób. Po kliknięciu na osobę
    pojawia się po prawej lista zdarzeń dla tej osoby (coś ala lista mejli w
    thunderbirdzie), a po kliknięciu na zdarzenie, pod spodem treść opisu
    zdarzenia.

    --
    Przemysław Adam Śmiejek

    Niech żadne nieprzyzwoite słowo nie wychodzi z ust waszych,
    ale tylko dobre, które może budować, gdy zajdzie potrzeba,
    aby przyniosło błogosławieństwo tym, którzy go słuchają. (Ef 4,29)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: