Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Responsive layout with QFrame

Responsive layout with QFrame

Scheduled Pinned Locked Moved Solved General and Desktop
23 Posts 4 Posters 6.2k Views
  • 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.
  • T Tyskie
    28 May 2018, 22:33

    Oh ! setResizeMode(QListView::Adjust) did the trick thank you so much :D
    I actually don't need a QStyledItemDelegate with that (explaining below regarding you comment updates) !

    About your questions, my custom widget is simply a QFrame with a QLabel and QButton in QHBoxLayout.
    And yes I use addItem followed by setItemWidget with a QListWidgetItem.

    Regarding performances, I think I will have near 50 items max, on the other hand those are using thread for the countdown, and as I limit the amount of threads, then yes, as you said, should not be a problem.

    I am not yet very familiar with the framework, I have some trouble understanding how the delegate can draw my widget :D - need to dig that out. Thanks again.

    M Offline
    M Offline
    mrjj
    Lifetime Qt Champion
    wrote on 28 May 2018, 22:50 last edited by mrjj
    #10

    @Tyskie
    Hi
    Well then setItemWidget should work just fine.

    Here is a delegate for combobox
    http://programmingexamples.net/wiki/Qt/Delegates/ComboBoxDelegate
    Notice the paint. it uses QApplication::style()->drawControl to draw the item
    There are many things, style()->drawControl and friends can draw. including all QWidgets
    like QPushButton.

    void ComboBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
    {
      QStyleOptionViewItemV4 myOption = option;
      QString text = Items[index.row()].c_str();
     
      myOption.text = text;
     
      QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &myOption, painter);
    }
    

    However, in Editmode, it uses a real combobox for selections.
    (QWidget *ComboBoxDelegate::createEditor)

    Its all explained here
    http://doc.qt.io/qt-5/model-view-programming.html

    However, if you use setItemWidget , i see no need for a delegate.

    1 Reply Last reply
    0
    • T Offline
      T Offline
      Tyskie
      wrote on 28 May 2018, 22:54 last edited by
      #11

      Well actually if one item gets removed, the others does not fill the place it left. More over when I remove an item and the resize the window, I got segment fault. I guess I am not yet done with ! hehe :)

      Thank you for the delegate example I will check it out and learn from it.

      M 1 Reply Last reply 28 May 2018, 22:56
      0
      • T Tyskie
        28 May 2018, 22:54

        Well actually if one item gets removed, the others does not fill the place it left. More over when I remove an item and the resize the window, I got segment fault. I guess I am not yet done with ! hehe :)

        Thank you for the delegate example I will check it out and learn from it.

        M Offline
        M Offline
        mrjj
        Lifetime Qt Champion
        wrote on 28 May 2018, 22:56 last edited by mrjj
        #12

        @Tyskie
        Hi
        How do you remove the item ?
        It should not crash. Also notice that Qt has a owner system that delete Widgets when parent is deleted
        so its important not to delete the children manually.
        I assume you simply remove the ListWidgetItem ?

        http://doc.qt.io/qt-5/objecttrees.html

        T 1 Reply Last reply 6 Jun 2018, 20:40
        0
        • T Offline
          T Offline
          Tyskie
          wrote on 29 May 2018, 08:14 last edited by Tyskie
          #13

          Hi,
          even worse :D I have a button.clicked.connect which I connected to QFrame close().
          so the button close the entire QFrame when X is pressed.

          1 Reply Last reply
          0
          • M mrjj
            28 May 2018, 22:56

            @Tyskie
            Hi
            How do you remove the item ?
            It should not crash. Also notice that Qt has a owner system that delete Widgets when parent is deleted
            so its important not to delete the children manually.
            I assume you simply remove the ListWidgetItem ?

            http://doc.qt.io/qt-5/objecttrees.html

            T Offline
            T Offline
            Tyskie
            wrote on 6 Jun 2018, 20:40 last edited by
            #14

            Hi, @mrjj how would delete the widget if not by deleting itself (the widget directly - not ListWidgetItem)?

            M 1 Reply Last reply 6 Jun 2018, 20:42
            0
            • T Tyskie
              6 Jun 2018, 20:40

              Hi, @mrjj how would delete the widget if not by deleting itself (the widget directly - not ListWidgetItem)?

              M Offline
              M Offline
              mrjj
              Lifetime Qt Champion
              wrote on 6 Jun 2018, 20:42 last edited by
              #15

              @Tyskie
              Hi and welcome back
              You mean take the widget back from the ListWidgetItem and delete it ?
              (but leave ListWidgetItem alone ) ?

              T 1 Reply Last reply 6 Jun 2018, 20:43
              0
              • M mrjj
                6 Jun 2018, 20:42

                @Tyskie
                Hi and welcome back
                You mean take the widget back from the ListWidgetItem and delete it ?
                (but leave ListWidgetItem alone ) ?

                T Offline
                T Offline
                Tyskie
                wrote on 6 Jun 2018, 20:43 last edited by Tyskie 6 Jun 2018, 20:45
                #16

                @mrjj thx, didn't had much time to get back to it yet.
                I meant to remove the whole 'item' from the list with ListWidgetItem and the widget/layout in it
                I have seem some people using takeItem/take and some with getting the model and removing item from it with removeRow, any best practice for that use case maybe?

                M 1 Reply Last reply 6 Jun 2018, 20:47
                0
                • T Tyskie
                  6 Jun 2018, 20:43

                  @mrjj thx, didn't had much time to get back to it yet.
                  I meant to remove the whole 'item' from the list with ListWidgetItem and the widget/layout in it
                  I have seem some people using takeItem/take and some with getting the model and removing item from it with removeRow, any best practice for that use case maybe?

                  M Offline
                  M Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on 6 Jun 2018, 20:47 last edited by
                  #17

                  @Tyskie
                  there is
                  http://doc.qt.io/qt-5/qlistwidget.html#removeItemWidget
                  to remove whole widget ( and all it owns)
                  or
                  http://doc.qt.io/qt-5/qlistwidget.html#takeItem

                  im not sure if u want both gone. (item and widget) or just widget

                  1 Reply Last reply
                  1
                  • T Offline
                    T Offline
                    Tyskie
                    wrote on 6 Jun 2018, 20:48 last edited by
                    #18

                    Oh right I missed the removeItemWidget - my bad, thanks again !

                    1 Reply Last reply
                    1
                    • T Offline
                      T Offline
                      Tyskie
                      wrote on 6 Jun 2018, 22:40 last edited by Tyskie 6 Jun 2018, 22:42
                      #19

                      mhm I start to think that QListWidget/View is not what I am looking for :D
                      It's been really hard to handle the clicked.connect of my button in the widget that is associated with the QListWidgetItem.
                      I am for example unable to find the QListWidgetItem which has the widget button in it that I am clicking on. I can surely click on the text to make it the selected QListWidgetItem and then click the button (having the delete slot method removing the current selected item) but that not really convenient.

                      1 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        Tyskie
                        wrote on 6 Jun 2018, 23:12 last edited by Tyskie 6 Jun 2018, 23:19
                        #20

                        OK I gave up too early - I finally succeed to make it work :D thanks a lot @mrjj

                        M 1 Reply Last reply 7 Jun 2018, 06:11
                        1
                        • T Tyskie
                          6 Jun 2018, 23:12

                          OK I gave up too early - I finally succeed to make it work :D thanks a lot @mrjj

                          M Offline
                          M Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on 7 Jun 2018, 06:11 last edited by
                          #21

                          @Tyskie

                          Super :)

                          alt text

                          JonBJ 1 Reply Last reply 7 Jun 2018, 07:46
                          1
                          • M mrjj
                            7 Jun 2018, 06:11

                            @Tyskie

                            Super :)

                            alt text

                            JonBJ Offline
                            JonBJ Offline
                            JonB
                            wrote on 7 Jun 2018, 07:46 last edited by
                            #22

                            @mrjj

                            Never ever give up

                            Is that from the frog's or the stork(?)'s POV, or both? ;-)
                            (And the pic makes me think of Windows programming!)
                            Where do you come across this kind of illustration in the first place? :)

                            M 1 Reply Last reply 7 Jun 2018, 08:01
                            0
                            • JonBJ JonB
                              7 Jun 2018, 07:46

                              @mrjj

                              Never ever give up

                              Is that from the frog's or the stork(?)'s POV, or both? ;-)
                              (And the pic makes me think of Windows programming!)
                              Where do you come across this kind of illustration in the first place? :)

                              M Offline
                              M Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on 7 Jun 2018, 08:01 last edited by
                              #23

                              @JonB
                              He he - good thinking.
                              Its was meant for the frog but your
                              comment make me think- it could also apply to the stork
                              as in never give up trying to swallow the frog.
                              I just use google image search as its brilliant nowadays.

                              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