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. Dropdown in Qtableview
Qt 6.11 is out! See what's new in the release blog

Dropdown in Qtableview

Scheduled Pinned Locked Moved Unsolved General and Desktop
18 Posts 4 Posters 5.0k Views 2 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.
  • JonBJ JonB

    @n-2204
    This is not at all clear. (It is also very weird!)

    You want a dropdown to appear in a cell. That dropdown has 2 values, a and b. User can select, by clicking, either value. If user selects b then "nothing special happens". But if user selects a what becomes editable? The a that the user has just selected?? Something else??

    Apart from the fact that it is hard to think of a case for this UI approach, it does not sound like it has anything to do with being in a QTableView cell. Take the combobox outside of the table and design whatever behaviour you say you want, get that working, before you worry about how to put it into a table.

    N Offline
    N Offline
    n-2204
    wrote on last edited by
    #6

    @JonB

    Ya, my mistake not mentioned clear. When user select a from drop down the cell content should set as a and user can edit that cell (Qtableview cell ) value, but if user selects b then cell is not editable.
    
    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #7

      Can you explain the workflow of that design ?

      While the "effect" is a bit clearer, as @JonB I fail to see how you want your users to interact with your application ?

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

      N 1 Reply Last reply
      0
      • SGaistS SGaist

        Can you explain the workflow of that design ?

        While the "effect" is a bit clearer, as @JonB I fail to see how you want your users to interact with your application ?

        N Offline
        N Offline
        n-2204
        wrote on last edited by jsulm
        #8

        @SGaist @JonB

        As I mentioned earlier, In a Qtableview cell I want to add a drop down option drop down contains two option like a ,b and basically a ,b, if user selects a then that cell will be editable it user select b then cell will be non editable this m doing for my calculation purpose , like b will have default data but if user want to change then change it to a an edit it.

        If any suggestions plz mention. Thank you

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

          And that on one specific cell ?

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

          N 1 Reply Last reply
          0
          • SGaistS SGaist

            And that on one specific cell ?

            N Offline
            N Offline
            n-2204
            wrote on last edited by
            #10

            @SGaist yes

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

              Then why not just position a QComboBox there and hide it once it has been used ?

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

              N 1 Reply Last reply
              0
              • SGaistS SGaist

                Then why not just position a QComboBox there and hide it once it has been used ?

                N Offline
                N Offline
                n-2204
                wrote on last edited by
                #12

                @SGaist
                can you explain more?

                what I understood is, add a combobox and do the selection like if selected a then edit that to other value and if selected b then set the value to tableview cell and then hide combobox ??

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

                  Yes, since you only have that one combo box for that unique action.

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

                  N 1 Reply Last reply
                  0
                  • SGaistS SGaist

                    Yes, since you only have that one combo box for that unique action.

                    N Offline
                    N Offline
                    n-2204
                    wrote on last edited by
                    #14

                    @SGaist

                    hide the QCombobox how to do that?

                    And one issue when editing the combobox , new value in adding to new index?
                    how can I replace ?

                    jsulmJ 1 Reply Last reply
                    0
                    • N n-2204

                      @SGaist

                      hide the QCombobox how to do that?

                      And one issue when editing the combobox , new value in adding to new index?
                      how can I replace ?

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #15

                      @n-2204 said in Dropdown in Qtableview:

                      hide the QCombobox how to do that?

                      https://doc.qt.io/qt-5/qwidget.html#hide

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      N 1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        @n-2204 said in Dropdown in Qtableview:

                        hide the QCombobox how to do that?

                        https://doc.qt.io/qt-5/qwidget.html#hide

                        N Offline
                        N Offline
                        n-2204
                        wrote on last edited by
                        #16

                        void QWidget::hide()
                        will hide the combobox from cell, and I have to show user the value of combobox selected by user like if combobox has 2 values when user selects a it is editable user can change it to t and if user selects b then its non editable and this value is set but if use hide then combobox will be hidden ?

                        jsulmJ 1 Reply Last reply
                        0
                        • N n-2204

                          void QWidget::hide()
                          will hide the combobox from cell, and I have to show user the value of combobox selected by user like if combobox has 2 values when user selects a it is editable user can change it to t and if user selects b then its non editable and this value is set but if use hide then combobox will be hidden ?

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by
                          #17

                          @n-2204 said in Dropdown in Qtableview:

                          if user selects b then its non editable and this value is set but if use hide then combobox will be hidden ?

                          Then show the selected value in a QLabel

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          N 1 Reply Last reply
                          0
                          • jsulmJ jsulm

                            @n-2204 said in Dropdown in Qtableview:

                            if user selects b then its non editable and this value is set but if use hide then combobox will be hidden ?

                            Then show the selected value in a QLabel

                            N Offline
                            N Offline
                            n-2204
                            wrote on last edited by n-2204
                            #18

                            how to replace value in combobox?

                              testdropdown::testdropdown(QWidget *parent)
                            : QMainWindow(parent)
                             {
                            ui.setupUi(this);
                            
                            QStandardItemModel* stndrditem_model1 = NULL;
                            QComboBox* combobox1;
                            QStringList lst;
                            
                            if (stndrditem_model1 == NULL) {
                                stndrditem_model1 = new QStandardItemModel(10, 11, this);//row*col
                            }
                            
                            ui.tableView->setModel(stndrditem_model1);
                            ui.tableView->setColumnWidth(2, 1);
                            
                            const QModelIndex idx = stndrditem_model1 ->index(1, 1);
                            combobox1 = qobject_cast<QComboBox*>(ui.tableView->indexWidget(idx));
                             if (!combobox1) {
                                 combobox1 = new QComboBox();
                                 ui.tableView->setIndexWidget(idx, combobox1);
                             }
                            
                             lst<< "test" << "testdata";
                             combobox1->addItems(lst);
                             connect(combobox1, 
                            QOverload<int>::of(&QComboBox::currentIndexChanged), this, &testdropdown::testedit);
                            
                             }
                              void testdropdown::testedit(int indx) {
                            if (indx == 1) { //when user select testdata
                                combobox1->setEditable(true);
                            //when user enter at index 1 the new data added at index 2 I want to replace at same index  
                                //how to replace testdata string list value with new value in combobox and index should remain same which is entered by user  ??
                              
                            }
                            else{
                                combobox1->setEditable(false);
                            }
                            }
                            
                            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