Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. Tworzenie nowego widgetu podczas trwania programu.

Tworzenie nowego widgetu podczas trwania programu.

Scheduled Pinned Locked Moved Polish
8 Posts 3 Posters 3.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    michal93cz
    wrote on last edited by
    #1

    Witam, piszę swój pierwszy program w QT, chciałem zrobić coś w stylu kreatora planu tygodniowego. Chciałem aby każdy dzień tygodnia był osobnym widgetem osadzonym na widgecie głównym, na który chciałem dodawać inny widget o nazwie Wydarzenie, który składałby się z trzech etykiet i przycisku usuwającego ten widget. Moja klasa Wydarzenie dziedziczy po klasie QWidget. Pytanie: czy coś takiego wgl ma sens, czy tworzenie widzetów podczas pracy programu jest wgl możliwe? Pozdrawiam.

    1 Reply Last reply
    0
    • sierdzioS Offline
      sierdzioS Offline
      sierdzio
      Moderators
      wrote on last edited by
      #2

      Tworzenie QWidgetów w trakcie pracy programu jest możliwe i ma sens :)

      Żeby dobrze taki widget upozycjonować, musisz mu dać odpowiedni parent i (najczęściej, ale żależy od tego, jak stworzyłeś UI) wsadzić do odpowiedniego layoutu.

      (Z(:^

      1 Reply Last reply
      0
      • M Offline
        M Offline
        michal93cz
        wrote on last edited by
        #3

        Dzięki za szybką odpowiedź :) a czy można jakoś go wsadzić na widget w dowolnym miejscu? Chciałbym, aby był szerokości widgetu na jaki go umieszczam (czyli rozumiem, parent np. mondayWidget i jego szerokosc) a w pionie żeby był osadzony biorąc pod uwagę czas rozpoczęcia wydarzenia i jego zakończenia, czyli dzieliłbym wysokosc widgetu na liczbę przedziałów czasowych i osadzał na widgecie zgodnie z jakąś pozycją y (pionową). Dobrze to rozumiem? I jak ustawić to w takiej pozycji? Chodzi mi głownie o pion.

        1 Reply Last reply
        0
        • sierdzioS Offline
          sierdzioS Offline
          sierdzio
          Moderators
          wrote on last edited by
          #4

          Przy widgetach są 2 możliwości: albo korzystasz z "twardych" współrzędnych, czli podajesz sam x, y, wysokość i szerokość, albo używasz layoutów, które robią to wszystko za ciebie, automatycznie. Polecam z nimi trochę poeksperymentować, w Qt Creatorze jest do GUI edytor graficzny i można całkiem sporo zrobić nie pisząc wiele kodu.

          Akurat w twoim przypadku layouty słabo się nadadzą, taki specyficzny use case ;-) Widzę tu kilka rozwiązań, nie jestem pewien, które doradzić. Ustawianie widgetu samemu bez layoutów jest trudne, orobisz się strasznie i będzie w tym pełno błędów. Inna opcja to zaimplementować własne rysowanie w widgetcie, albo przynajmniej samemu napisać funckję sizeHint() tak, żeby widget miał dokładnie takie wymiary, jakie cię interesują. Z innych opcji jest jeszcze język QML i moduł QtQuick, ale to całkiem inna para kaloszy (bardzo łatwa, ale całkiem inna ;)).

          (Z(:^

          1 Reply Last reply
          0
          • M Offline
            M Offline
            michal93cz
            wrote on last edited by
            #5

            Trochę już poznałem QML, stworzyłem sobie z pomocą tego języka GUI, które chciałem mieć. Utworzyłem również klasę Wydarzenie dziedziczącą po QObject oraz stworzyłem wydarzenie.qml, będące takim małym "widgecikiem", który chciałbym dodawać na istniejące już gui. Nadal nie wiem w jaki sposob połaczyć QML z c++ w ten sposób, żeby po wcisnieciu buttona utworzyc instancje obiektu klasy Wydarzenie i jednoczesnie dodac odpowiedni "Rectangle" do tegoż GUI? Jeżeli ktoś mógłby mi pomóc to chętnie wkleje gdzieś ten kod w celu czytelniejszego rozpoznania problemu.

            1 Reply Last reply
            0
            • S Offline
              S Offline
              savior
              wrote on last edited by
              #6

              a może utwórz wydarzenie i je schowaj a na kliknięcie przycisku je pokaż.

              1 Reply Last reply
              0
              • M Offline
                M Offline
                michal93cz
                wrote on last edited by
                #7

                niestety, ale chciałbym żeby to uzytkownik mógł dodawac wydarzenia z konkretnym przedziałem czasowym, miejscem i nazwą.

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  savior
                  wrote on last edited by
                  #8

                  to chyba musisz użyć jakąś ListView i napychać go tylko danymi (modelem). tu masz przykład: http://kunalmaemo.blogspot.com/2011/03/creating-custom-listview-delegate-in.html

                  1 Reply Last reply
                  0

                  • Login

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • Users
                  • Groups
                  • Search
                  • Get Qt Extensions
                  • Unsolved