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. How can we set id to a widget in Qt?
Forum Update on Monday, May 27th 2025

How can we set id to a widget in Qt?

Scheduled Pinned Locked Moved General and Desktop
15 Posts 3 Posters 16.3k 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.
  • P Offline
    P Offline
    pratik041
    wrote on last edited by
    #1

    I have checked the documentation but not found any function to set id to a widget. Is their any function to set id to a widget.

    Pratik Agrawal

    1 Reply Last reply
    0
    • A Offline
      A Offline
      andre
      wrote on last edited by
      #2

      What do you mean with 'id'? Some kind of number? Perhaps you can use the objectName? Or you could use a dynamic property?

      1 Reply Last reply
      0
      • ? This user is from outside of this forum
        ? This user is from outside of this forum
        Guest
        wrote on last edited by
        #3

        You mean like a name?

        QString accessibleName () const
        void setAccessibleName ( const QString & name )

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

          [quote author="ddriver" date="1329980110"]You mean like a name?

          QString accessibleName () const
          void setAccessibleName ( const QString & name )[/quote]
          That property is not meant for program-internal identifiers. It is meant for devices like screen readers or braille devices.

          1 Reply Last reply
          0
          • P Offline
            P Offline
            pratik041
            wrote on last edited by
            #5

            [quote author="Andre" date="1329979961"]What do you mean with 'id'? Some kind of number? Perhaps you can use the objectName? Or you could use a dynamic property?[/quote]

            By id i mean some number.

            Pratik Agrawal

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

              Just use a dynamic property then.

              1 Reply Last reply
              0
              • ? This user is from outside of this forum
                ? This user is from outside of this forum
                Guest
                wrote on last edited by
                #7

                Andre - I see...

                pratik041 - what is wrong with adding an int member variable and setter/getter methods to your custom widget? It doesn't seem like QWidget has this implemented by default.

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

                  [quote author="ddriver" date="1329980939"]Andre - I see...

                  pratik041 - what is wrong with adding an int member variable and setter/getter methods to your custom widget? It doesn't seem like QWidget has this implemented by default.[/quote]
                  Nothing wrong with that approach, if you only need it for a specific or at least a limited number of classes. If you need it for a whole range of different widgets, I would want to use something in the base class, hence the dynamic property recommendation. However, you are right, adding a property with getters and setters is the better way in principle.

                  1 Reply Last reply
                  0
                  • ? This user is from outside of this forum
                    ? This user is from outside of this forum
                    Guest
                    wrote on last edited by
                    #9

                    You can create a class IDWidget, inherit QWidget, add the extra functionality, and inherit from IDWidget instead of QWidget if multiple instances of widgets with ID are needed, in order to save re-implementing the ID for each and every one.

                    However there is a limitation if you want to use stock widgets that inherit from QWidget, in which case Andre's solution is more appropriate.

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

                      If we're throwing around solutions anyway: you could even create a class template that adds this function to any widget you want, including all stock widgets. :-)

                      @
                      template <class T>
                      public IDClass<T>: public T {
                      public:
                      IDClass(int id, QWidget* parent = 0):
                      m_id(id),
                      T(parent)
                      {}

                      void setId(int newId) {m_id = newId};
                      int id() const {return m_id;}

                      private:
                      int m_id;
                      }

                      typedef IDClass<QLineEdit> IdLineEdit;
                      typedef IDClass<QPushButton> IdPushButton;
                      //etc.

                      @

                      Of course: brain to terminal, I did not test this pseudo code :-)

                      1 Reply Last reply
                      0
                      • ? This user is from outside of this forum
                        ? This user is from outside of this forum
                        Guest
                        wrote on last edited by
                        #11

                        Yes, thanks, the more the better :) It is a good solution indeed.

                        1 Reply Last reply
                        0
                        • G Offline
                          G Offline
                          goetz
                          wrote on last edited by
                          #12

                          @Andre: But you can't use them in Qt Designer unless you're preparing a whole new set of plugins :)

                          http://www.catb.org/~esr/faqs/smart-questions.html

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            andre
                            wrote on last edited by
                            #13

                            Sure? Not even through widget promotion?

                            1 Reply Last reply
                            0
                            • G Offline
                              G Offline
                              goetz
                              wrote on last edited by
                              #14

                              Promotion can work, yes. But I don't know if the special editors remain, for example for a QTextEdit.

                              http://www.catb.org/~esr/faqs/smart-questions.html

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

                                They do. Just make sure you use the right base widget when promoting. Promote a QTextExit to an IdTextEdit and you're good to go. However, that will of course still not allow you to set the ID from designer directly. I did not read this requirement from the question, so I guess it would not be needed.

                                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