Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct


    Qt World Summit: Early-Bird Tickets

    How to access objects of parent Dialog from Child Dialog .

    General and Desktop
    5
    38
    13849
    Loading More Posts
    • 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.
    • I
      imrrk last edited by

      Hello respected Qt experts and my dear forum friends,
      I have a doubt ,Suppose I in my first dialog.ui i have dragged a label through designer and in my second dialog.ui ,I have a radio button called setlabel and a pushbutton called ok,so when i click on radiobutton and click on ok pushbutton,the label should change in my first dialog.ui...so how to do it..using signals and slots..

      regards
      imrrk

      1 Reply Last reply Reply Quote 0
      • W
        wladek last edited by

        Hi imrrk,

        You already answered your question...do it by using "Signals and slots":http://doc.qt.nokia.com/latest/signalsandslots.html :).
        It is really easy to connect the signals from your radio and push button with the label's slot.

        regards,
        wladek

        1 Reply Last reply Reply Quote 0
        • G
          giesbert last edited by

          hm, you cant connect directly in designer, as they are different dialogs.

          you need a signal in your dialog (typically in your custom implementation) and a slot in the other one (also in the custom implementation) and connect them.

          Nokia Certified Qt Specialist.
          Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

          1 Reply Last reply Reply Quote 0
          • A
            andre last edited by

            imrrk, as you have been told in your calendar thread: the best way is to make sure that you have a clear interface between different objects in your application. That is: don't try to reference (or connect to) internals of one object from another one. Instead, expose the parts you need to expose at the interface of the classes. In this case, that means that your first class (the one with the label) gets a slot setLabel(const QString& text), and that the second class (with the button) gets a corresponding signal. You connect the two at a place where you have references to both the objects. This way, it doesn't matter what happens internally in either class, and you can change that however you like. You can replace the label by some other kind of widget, or you can change the kind of UI you choose for changing it. However, the programming interface: the public slot and signal in the classes's interfaces, can remain the same.

            1 Reply Last reply Reply Quote 0
            • I
              imrrk last edited by

              hey gerolf,can u explain me with my example so it will be very clear for me,and I have rightclicked the project and added the new designer form class from which i got dialog1.ui,dialog1.cpp and dialog1.h,so if you u explain with my example above ,i will be very thankful to you..

              regards
              imrrk

              1 Reply Last reply Reply Quote 0
              • I
                imrrk last edited by

                hey andre,I am confused,please explain me with short code snippet..

                regards
                imrrk

                1 Reply Last reply Reply Quote 0
                • G
                  giesbert last edited by

                  imrrk,

                  perhaps you should try to get one of the really good books from the books page of the "wiki":http://developer.qt.nokia.com/wiki/Books_and_Links_for_learning_C_and_advanced_topics and read it. How to make signals and slots and how to make dialogs is basic Qt.

                  I suggest this one: Summerfield et.al: C++ GUI Programming with Qt 4

                  It explains many of your questions here on dev net and is really god.

                  Nokia Certified Qt Specialist.
                  Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

                  1 Reply Last reply Reply Quote 0
                  • I
                    imrrk last edited by

                    Hey i understood the concept...i am clear now.thanks alot

                    1 Reply Last reply Reply Quote 0
                    • I
                      imrrk last edited by

                      hello ,if I have written same signals for two differnt slots

                      @
                      connect(ui->calendarWidget,SIGNAL(clicked(QDate)),this,SLOT(showdate(QDate)));
                      connect(ui->calendarWidget,SIGNAL(clicked(QDate)),this,SLOT(showset(QDate)));
                      @

                      and from the theory it is written that it will that slots will be called in order in which they are called,but my case they are getting called at once..so whether i have gone wrong?

                      [EDIT: code formatting, Volker]
                      regards
                      imrrk

                      1 Reply Last reply Reply Quote 0
                      • A
                        andre last edited by

                        Your understanding of what is going on. They are not called at the same time.

                        1 Reply Last reply Reply Quote 0
                        • I
                          imrrk last edited by

                          but when i click on calendar widget the slots are getting called at once only

                          1 Reply Last reply Reply Quote 0
                          • A
                            andre last edited by

                            No, they are NOT. They are called consecutively. First the one, then the other. Why would you think they are called at the same time?

                            1 Reply Last reply Reply Quote 0
                            • I
                              imrrk last edited by

                              hello andre,I have taken a calendar widget and text browser in my first dialog,so on click(Qdate )signal ,i have written a slot for showing the text on browser,then again on click(Qdate) I have written one more slot where it opens a new dialog..so when a user clicks for the firsttime a date is displayed in textbrowser,but when he clicks the second time he is directed to new dialog,but in my case both conditions are happening at the same click and not on 2 clicks,

                              regards
                              imrrk

                              1 Reply Last reply Reply Quote 0
                              • A
                                andre last edited by

                                That is how it should be. You made two connections. Each of the two connected slots are executed for each time the signal is fired. That means that on the first click, you will get both slots executed (in order), and on the second click they will both get executed again.

                                1 Reply Last reply Reply Quote 0
                                • I
                                  imrrk last edited by

                                  so wats the solution?,but if i want the dialog to be opened only on second click then what we should do

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    andre last edited by

                                    Re-think your UI so that performing an action on a date will result in the same effect the first time as it does the second time, for instance. I find it weird that you want to display one dialog the one time, and another one the second time. What would happen the third time? Or the tenth?

                                    That is: unless your dates display some kind of visual state to differentiate them. But then, that is something you can use for differentiating between the actions you want to perform as well.

                                    1 Reply Last reply Reply Quote 0
                                    • I
                                      imrrk last edited by

                                      if we look at std phone calendar,onfirstclick they just show the date,but if we again click the date ,a dialog is opened and we are asked to set reminders,I am asking u that kind of mechanism..

                                      regards
                                      imrrk

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        andre last edited by

                                        So, that means that you only do something with a click, if that date is already the selected date. Well... you have access to the selected date, so I suggest you use it.

                                        1 Reply Last reply Reply Quote 0
                                        • I
                                          imrrk last edited by

                                          ok can u show me by a small code snippet..it will be very helpful

                                          regards
                                          imrrk

                                          1 Reply Last reply Reply Quote 0
                                          • I
                                            imrrk last edited by

                                            hey whether i should use selectedDate function..?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post