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. Custom QStyledItemDelegate to customize apperence of QListView with a SQLModel under the hood

Custom QStyledItemDelegate to customize apperence of QListView with a SQLModel under the hood

Scheduled Pinned Locked Moved Solved General and Desktop
qt c++
33 Posts 4 Posters 4.7k 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.
  • A Offline
    A Offline
    Andrea_Venturelli
    wrote on last edited by Andrea_Venturelli
    #1

    Hello everyone, i'm trying to achive a custom ListItemWidget that has 3 text element retrive from an SQL model (postgress version).

    QT version either 6.7.2 or 6.8
    QT creator 14
    Built with MinGW_64

    I do not want to create a stand-alone widget and wrap it inside a listItem because is not memory efficient and I may end up with hundreds of items.

    Description:
    1. I have a PostGres DB with this colum: "Comment_posted_datetime" (NOT NULL UNIQUE), "USERNAME" (NOT NULL), "comment_body_txt" (NOT NULL), "modified_datetime".

    2. the red-text for modified is present only if the "modified_datetime" has a value, if it doesn't have it with not be drawn

    3. when theitem is double-clicked can be modified, only the body text should be editable with a QTextEdit Widget

    this is how the final widget should look like:
    79842757-fa98-44b1-9f31-590f416d82b8-image.png

    I tryed to follow along the StarEditor Example provided with the documentation but is too different from what i'm trying to achive and is the first time I'm facing off this time of deep-level costomization.

    Can someone help me to understand the core logic and steps that must be done to pull off this type of tasks?

    thanks.
    Andrea.

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Andrea_Venturelli
      wrote on last edited by
      #31

      @SGaist I knew it could potentially become an issue, but I decided to use that model temporarily to create and test the UI.
      I guess this is also the cause why I can't subscribe the changes to the model.

      Now I'm refactoring the code to make it cleaner, after that I will try to use a QSqlRelationalModel or give up and create a customModel to filter and sort the data without a QFilterSortProxyModel..

      this is how my database is Structed at the moment:
      effeb4fc-839c-4640-b406-9c95a1b858fa-image.png

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #2

        Hi,

        The fact that your data come from a database is of no consequences here.
        You can grab whatever you need based on the index passed to the QStyledItemDelegate::paint method using the QModelIndex::siblingAtColumn method.

        From there, you can test for whatever conditions you need to draw what you want. You can use QPainter::drawText to render the text you want. You will have to change the font used by the painter prior to painting.

        As for the custom editor, use createEditor, setEditorData and setModelData to manage the edition part.

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        3
        • A Offline
          A Offline
          Andrea_Venturelli
          wrote on last edited by
          #3

          thanks @SGaist ; the tip to use QModelIndex::siblingAtColumn helped me to make a step toward the right direction.

          I refactor the code and now i'm able to display something inside the QListView although the comments are painted over eachother and I don't know if i need to translate the painter every time a widget is painted or what

          the Widget' ::paint() method is as follows:

          void CommentsWidget::paint(QPainter *painter, const QRect &rect, const QPalette &palette, EditMode mode) const
          {
              Q_UNUSED(palette)
          
              painter->save();
              painter->setRenderHint(QPainter::Antialiasing, true);
              painter->setPen(Qt::NoPen);
          
              const auto BG = (mode == EditMode::ReadOnly) ? CARD_BG_NORMAL : CARD_BG_SELECTED;
              painter->setBrush(BG);
          
              /*  transparent background   */
              painter->fillRect(rect, Qt::transparent);
          
              /* card bg and border + clipping */
              QPainterPath card_path;
              card_path.addRoundedRect(0, 0, rect.width(), rect.height(), CARD_BORDER_RADIUS, CARD_BORDER_RADIUS);
              painter->setClipPath(card_path, Qt::IntersectClip);
              painter->drawRoundedRect(0, 0, rect.width(), rect.height(), CARD_BORDER_RADIUS, CARD_BORDER_RADIUS);
          
              /*   header    */
              auto headers_font = this->builtFont(HEADER_FONT_SIZE, "Inter", QFont::DemiBold);
              this->setBrushPenColor(painter, QColor(Qt::black), QColor(Qt::black));
          
              /* calculate font bound */
              QFontMetrics header_metrics(headers_font);
              int timestamp_h = header_metrics.boundingRect(m_comment_date).height();
          
              /* timestamp header */
              painter->drawText(QPoint(SIDE_MARGINS, SPACING), m_comment_date);
          
              /* text drawn only if the comment was modified */
              int subheader_m_h{};
              if (m_modified != "")
              {
                  this->setBrushPenColor(painter, QColor(129, 18, 18), QColor(129, 18, 18));
                  auto subHeaderFont = builtFont(HEADER_FONT_SIZE - 2, "Inter", QFont::DemiBold);
          
                  painter->setFont(subHeaderFont);
          
                  int offset = SPACING + timestamp_h + 4;
                  painter->drawText(QPoint(SIDE_MARGINS, offset), m_modified);
          
                  QFontMetrics subheader_m(subHeaderFont);
                  subheader_m_h = subheader_m.boundingRect(m_comment_date).height();
              }
          
              /* BODY TEXT */
              QFont body_font = this->builtFont(BODY_FONT_SIZE, "Inter", QFont::Normal);
              painter->setFont(body_font);
          
              this->setBrushPenColor(painter, QColor(Qt::black), QColor(Qt::black));
          
              /* --- word wrapping --- */
              QTextOption txt_opt;
              txt_opt.setAlignment(Qt::AlignLeft);
              txt_opt.setWrapMode(QTextOption::WordWrap);
          
              auto lines_count = (m_comment_body.length() / LINE_LENGHT) + 1;
              auto body_single_line_h = QFontMetrics(
                              this->builtFont(BODY_FONT_SIZE, "Inter", QFont::Normal)
                          ).boundingRect(m_comment_body).height();
          
              QRectF body_rect(
                      SIDE_MARGINS,
                      SPACING + timestamp_h + 4 + subheader_m_h + SIDE_MARGINS,
                      275,
                      lines_count * body_single_line_h
                  );
          
              painter->drawText(body_rect, m_comment_body, txt_opt);
              painter->restore();
              /*
              painter->drawText(
                  QPoint(SIDE_MARGINS, SPACING + timestamp_h + 4 + subheader_m_h + SIDE_MARGINS),
                  m_comment_body
              );
              */
          }
          
          test purpose program description:
          • I have a Top LineEdit that every time a "Serial number" is entered, filter the SQL model and refresh the Two View

          • contains A TableView is placed to see what values are passed to the ListView, to check the correctness of the information

          • contains A listView that i'm trying to customize like the image posted in the first post.

          this is what I currently have:
          0192b666-fdd1-4114-af6f-3b7241186b9b-image.png .

          problems I saw

          the view have allocate the right amount of space for each records (in this case 8) and is selectable (as can be seen by the orange rectangle) , but the CommentsWidget(s) are drawn over each other and the spacing inside is not correct.

          Sometimes when the body_text and up spaning over two rows, the widget displays only the first. When I randomly hover, and move inside the white comment box, it switch text to another record

          1 Reply Last reply
          0
          • A Offline
            A Offline
            Andrea_Venturelli
            wrote on last edited by
            #4

            @jsulm can u please give me support about the customised list view with the delegate and representation ?

            thanks

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #5

              Did you check that the rectangle you pass to your paint method is the correct one ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • A Offline
                A Offline
                Andrea_Venturelli
                wrote on last edited by
                #6

                I did some prints after u suggest to take a look at the Rectangle passed to the paint event of the widget and I found that the sizes were right, and the problem was in the "painter->draw()" method because I was passing x= 0 and y= 0 instead of the rect.x() and rect.y() so the body's messages were drawn on top of each others.

                   /* how it was originally */
                    painter->drawRoundedRect(0, 0, rect.width(), rect.height(), 
                
                    /* card bg and border + clipping */
                    QPainterPath card_path;
                    card_path.addRoundedRect(rect.x(), rect.y(), rect.width(), rect.height(), CARD_BORDER_RADIUS, CARD_BORDER_RADIUS);
                    painter->setClipPath(card_path, Qt::IntersectClip);
                    /* how should have been */
                    painter->drawRoundedRect(rect.x(), rect.y(), rect.width(), rect.height(), CARD_BORDER_RADIUS, CARD_BORDER_RADIUS);
                

                the results now is like so:
                196b34d0-45ee-48f3-a074-b5782e091364-image.png

                Before mark this post as solved, I need to resolve the issues correlated to the multi-line body text been chopped off. If someone have a hint I will appreciate it, but in the meanwhile I'am going to search the solution checking the SizeHint() methods

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #7

                  Can you show an example of chopped off text ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    Andrea_Venturelli
                    wrote on last edited by
                    #8

                    You can see it directly from the screen-shot above where the fifth comment-box has the text “Bentley never ever got” and is missing the word “problem” as you can see in the table widget where it displays the full data for reference and debugging purposes.

                    on top of that I have trouble to achieve a editor modification on the comment, displayed:

                    • On double clicking the comment-box the “edit-mode is triggered
                    • the edit mode, simply change the background color and should allow the user to edit the “body_text” (example.. the bantley never ever got problems” in maybe “Bentley should have A/C checked” )
                      but I’m stuck trying to thinking about how can I place a QTextEdit widget to place over the body for allowing text modification..
                      I tried to create a QTextEdit widget in the createEditorWidget method of the custom class that subclass QStyledItem but how I draw it over the CommentsWidget?
                    Pl45m4P 1 Reply Last reply
                    0
                    • A Andrea_Venturelli

                      You can see it directly from the screen-shot above where the fifth comment-box has the text “Bentley never ever got” and is missing the word “problem” as you can see in the table widget where it displays the full data for reference and debugging purposes.

                      on top of that I have trouble to achieve a editor modification on the comment, displayed:

                      • On double clicking the comment-box the “edit-mode is triggered
                      • the edit mode, simply change the background color and should allow the user to edit the “body_text” (example.. the bantley never ever got problems” in maybe “Bentley should have A/C checked” )
                        but I’m stuck trying to thinking about how can I place a QTextEdit widget to place over the body for allowing text modification..
                        I tried to create a QTextEdit widget in the createEditorWidget method of the custom class that subclass QStyledItem but how I draw it over the CommentsWidget?
                      Pl45m4P Online
                      Pl45m4P Online
                      Pl45m4
                      wrote on last edited by
                      #9

                      @Andrea_Venturelli

                      Hi, what about implementing

                      QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
                      {
                          return new QTextEdit(parent);
                      }
                      

                      from QStyleItemDelegate?

                      • https://doc.qt.io/qt-6/qstyleditemdelegate.html#createEditor

                      Where is the TextEdit shown then?


                      If debugging is the process of removing software bugs, then programming must be the process of putting them in.

                      ~E. W. Dijkstra

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        Andrea_Venturelli
                        wrote on last edited by
                        #10

                        thanks @Pl45m4 for the reply , I appreciate it so much, at the moment i don’t have access to the code in my working’s pc until Monday, but what I have in mind (theoretically speaking), after the list view receive a double-click on an item, the EditMode::edit will be passed to the widget paint event responsible for drawing the commentsWidget.
                        after that i want to replace the hard-coded text of the body with a functional and editable QTextEdit that contains the body text which can be taken from the member variable m_body_comment.

                        when the return key is pressed, the QStyledItem will emit the EditingFinished signal and clode the editor.

                        I hope to be able to express clearly my plan, if not let me know

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #11

                          It's a two step operation:

                          1. createEditor
                          2. setEditorData
                            With the second you can set whatever is appropriate in the editor from your model.

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            Andrea_Venturelli
                            wrote on last edited by
                            #12

                            @SGaist you are completly right, and I was confused following along the StarDelegate example that is diffrent from what I need.

                            So I adjust the EditorWidget with is own UI and the QPlainTextEdit, I was trying to test it but i notice that the "QStyledItemDelegate::createEditor()" is never called. I check online and the suggestion is to check the item's flags, so I did and the result is: "QFlagsQt::ItemFlag(ItemIsSelectable|ItemIsEnabled|ItemNeverHasChildren)".

                            As expected, the Items are missing the "isEditable" flags but I think there is not a direct way to modify ALL the item's flags at once from the QListView (at least from what I red).

                            Is my only choise left, to subclass QListView and re-implement the ::flags() method ?

                            this is my current basic setup in the main window for the default QListView:

                               // lst_vw rappresent the QListView placed in the UI file
                                ui->lst_vw->setItemDelegate( new CommentListItem );
                                ui->lst_vw->setEditTriggers(QAbstractItemView::EditTrigger::DoubleClicked);
                            
                                ui->lst_vw->setModel(_m_model);
                            
                            I already learn that this code inside MainWindow's constructor isn't enough.. what I'm asking is: Is it possible to set the editable flags without sub-classing the QListView and re-implement flags() ?
                            JonBJ 1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #13

                              Usually this is done at the model level. Are you using one of the QSql models ?

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              1 Reply Last reply
                              0
                              • A Andrea_Venturelli

                                @SGaist you are completly right, and I was confused following along the StarDelegate example that is diffrent from what I need.

                                So I adjust the EditorWidget with is own UI and the QPlainTextEdit, I was trying to test it but i notice that the "QStyledItemDelegate::createEditor()" is never called. I check online and the suggestion is to check the item's flags, so I did and the result is: "QFlagsQt::ItemFlag(ItemIsSelectable|ItemIsEnabled|ItemNeverHasChildren)".

                                As expected, the Items are missing the "isEditable" flags but I think there is not a direct way to modify ALL the item's flags at once from the QListView (at least from what I red).

                                Is my only choise left, to subclass QListView and re-implement the ::flags() method ?

                                this is my current basic setup in the main window for the default QListView:

                                   // lst_vw rappresent the QListView placed in the UI file
                                    ui->lst_vw->setItemDelegate( new CommentListItem );
                                    ui->lst_vw->setEditTriggers(QAbstractItemView::EditTrigger::DoubleClicked);
                                
                                    ui->lst_vw->setModel(_m_model);
                                
                                I already learn that this code inside MainWindow's constructor isn't enough.. what I'm asking is: Is it possible to set the editable flags without sub-classing the QListView and re-implement flags() ?
                                JonBJ Offline
                                JonBJ Offline
                                JonB
                                wrote on last edited by JonB
                                #14

                                @Andrea_Venturelli
                                Qt::ItemFlags, including Qt::ItemIsEditable and the flags() method, come from the model, not from the view. So I don't know why you are thinking of subclassing QListView, it does not store item flags or have a flags() method to override.

                                So you need to change what the model returns. Derive from QAbstractItemModel (or one of its existing derivations) and OR-in the ItemIsEditable to make the model editable. https://doc.qt.io/qt-6/qabstractitemmodel.html#subclassing

                                To enable editing in your model, you must also implement setData(), and reimplement flags() to ensure that ItemIsEditable is returned.

                                If you were using a QListWidget which has QListWidgetItems you could call QListWidgetItem::setFlags() to change an item's flags. However that is a "layer" added by QListWidget to the QListView you have. Internally it is presumably implemented by QListWidget storing values to return from its model's flags().

                                For SQL stuff you should find that QSqlQueryModel returns non-editable flags (cannot edit items returned from a query), unless you subclass it. While QSqlTableModel returns editable flags (can edit items stored in a table). You may want to subclass those, it might also be possible to interpose a (sub-classed) QAbstractProxyModel where you override flags() between your view and the SQL model.

                                All ways round the one thing you do not need to do is change the QListView :)

                                1 Reply Last reply
                                0
                                • A Offline
                                  A Offline
                                  Andrea_Venturelli
                                  wrote on last edited by
                                  #15

                                  ahaha @JonB you are a legend, and I have a lot to study in order to understand very well the Model\View stuffs.

                                  But bised that, you were right about the QSqlTableModel, and changing the model from QSqlQueryModel to it, "kinda worked"
                                  Now (without trying to subclass anything) I got only the first item editable, and the others do not flinch.

                                  screenshot showing the first item is editable:
                                  image.png

                                  based on yours experience, which approach do you think is better and more elegant to resolve the problem (the problem is obviously my ignorance :) )?

                                  JonBJ 1 Reply Last reply
                                  0
                                  • SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #16

                                    The Query Model Example shows how to make a QSqlQueryModel editable.

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    1 Reply Last reply
                                    0
                                    • A Andrea_Venturelli

                                      ahaha @JonB you are a legend, and I have a lot to study in order to understand very well the Model\View stuffs.

                                      But bised that, you were right about the QSqlTableModel, and changing the model from QSqlQueryModel to it, "kinda worked"
                                      Now (without trying to subclass anything) I got only the first item editable, and the others do not flinch.

                                      screenshot showing the first item is editable:
                                      image.png

                                      based on yours experience, which approach do you think is better and more elegant to resolve the problem (the problem is obviously my ignorance :) )?

                                      JonBJ Offline
                                      JonBJ Offline
                                      JonB
                                      wrote on last edited by JonB
                                      #17

                                      @Andrea_Venturelli said in Custom QStyledItemDelegate to customize apperence of QListView with a SQLModel under the hood:

                                      it, "kinda worked"
                                      Now (without trying to subclass anything) I got only the first item editable, and the others do not flinch.

                                      I'm not sure what you're saying. From a QSqlTableModel you should be able to edit any/all columns, e.g. in a QTableView, provided there is nothing "special" about their definitions. Your QListView is only going to show/edit one column. Are you saying you have what you want or something else is a problem?

                                      If what you want to do is edit rows/columns in a SQL table QSqlTableModel should do fine. I think you only would want an editable QSqlQueryModel instead in certain specialised circumstances.

                                      Don't forget there are two possibilities for presenting a UI to edit columns in tables. In one case the user does the edits "in situ" on items in the QTableView, by clicking on them there. This may indeed be what you want. But sometimes you might want to offer a "master-detail" view, where the user clicks on a row in the table view to read whichever editable fields into their own dedicated widgets not sitting on the table view. If you want that Qt offers QDataWidgetMapper. Just so you are aware.

                                      1 Reply Last reply
                                      0
                                      • A Offline
                                        A Offline
                                        Andrea_Venturelli
                                        wrote on last edited by Andrea_Venturelli
                                        #18

                                        @JonB
                                        I have a Sql model with all the informations needed to display the custom item inside a list view.

                                        the normal QStyledItemDelegate draw a rectangle with 3 labels (taken from the SqlModel):

                                          1. the string rappresenting the date when the message was first posted
                                          1. [optional] a string rappresenting the date when the “body” last modification occured (also taken from the Sql model, a empty string is provided if the comment was never edited before)
                                          1. the body containing a description about the problem or whatever (also present in the QSqlModel inside its specific column)

                                        When the user double-click the comment he wants to modify, the createEditor() will provide the same data as before (post_date, post_modification_date if available, and the body text) but this time the body_text is not a label or a drawn text but it is a QPlainTextEdit.

                                        I install a filterEvent on the QPlainTextEdit so when the user presses “Ctrl+Return” it emit a CommitAndCloseEditor signal to tell Qt to destroy the editor and save the data to the model (olso adding or updating the post_modified_date).

                                        every rectangle rappresented inside the listView corresponds to a row of the model.

                                        In the screenshot I posted, the first item , when double-clicked, work as expected and the Editor with the QPlainTextEdit. But if I try to do the same with the second, third and so on, the Editor don’t show up.

                                        that’s all for the moment

                                        JonBJ 1 Reply Last reply
                                        0
                                        • A Andrea_Venturelli

                                          @JonB
                                          I have a Sql model with all the informations needed to display the custom item inside a list view.

                                          the normal QStyledItemDelegate draw a rectangle with 3 labels (taken from the SqlModel):

                                            1. the string rappresenting the date when the message was first posted
                                            1. [optional] a string rappresenting the date when the “body” last modification occured (also taken from the Sql model, a empty string is provided if the comment was never edited before)
                                            1. the body containing a description about the problem or whatever (also present in the QSqlModel inside its specific column)

                                          When the user double-click the comment he wants to modify, the createEditor() will provide the same data as before (post_date, post_modification_date if available, and the body text) but this time the body_text is not a label or a drawn text but it is a QPlainTextEdit.

                                          I install a filterEvent on the QPlainTextEdit so when the user presses “Ctrl+Return” it emit a CommitAndCloseEditor signal to tell Qt to destroy the editor and save the data to the model (olso adding or updating the post_modified_date).

                                          every rectangle rappresented inside the listView corresponds to a row of the model.

                                          In the screenshot I posted, the first item , when double-clicked, work as expected and the Editor with the QPlainTextEdit. But if I try to do the same with the second, third and so on, the Editor don’t show up.

                                          that’s all for the moment

                                          JonBJ Offline
                                          JonBJ Offline
                                          JonB
                                          wrote on last edited by JonB
                                          #19

                                          @Andrea_Venturelli
                                          I guess start by verifying whether the table view is seeing the ItemIsEditable flag for items when you double click (or whatever you have set) to edit them. Since that's talking about editing in place in a QTableView I don't really see how that has anything to do with whatever you are doing with the QListView. Or maybe you don't want cells editable in the QTableView. Or maybe you want clicking in a cell in any column to invoke editing in the QListView. I really don't know.

                                          In the screenshot I posted, the first item , when double-clicked, work as expected and the Editor with the QPlainTextEdit. But if I try to do the same with the second, third and so on, the Editor don’t show up.

                                          First, second and third what?? What's an "item"? Are you talking about coulmns or rows or what? It would be a lot clearer if you stated this sort of thing.

                                          UPDATE
                                          Oh, I think your "items" are lines inside the List Item delegate, each of which corresponds to a column in the table view? So to edit columns within one row in the database. And you are having problems with which item you click and getting into the right edit. Or something like that. Quite outside of anything I have done. I just know about columns/row/cell editing, with or without delegates, of a table model in a QTableView.

                                          1 Reply Last reply
                                          0
                                          • A Offline
                                            A Offline
                                            Andrea_Venturelli
                                            wrote on last edited by
                                            #20

                                            Sorry @JonB I do not repeat an important point that I specified at the very early posts.

                                            the table you see on the right is ONLY FOR DEBUG, on the final widget will only exist the “listView” with the custom delegate.
                                            the table is only needed for me to troubleshoot potential errors and for the other here helping me understand what was given to the ListView!

                                            all the window is a test for develop the listView. it will be a stand alone widget where under it I’ll add a lineEdit to add new comments to the ListView.
                                            THE TABLE IS ONLY FOR REFERENCE!

                                            Sorry if was not clear from the beginning

                                            JonBJ 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