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. Access To QWidget declared in addTab() function.
Forum Updated to NodeBB v4.3 + New Features

Access To QWidget declared in addTab() function.

Scheduled Pinned Locked Moved Solved General and Desktop
15 Posts 3 Posters 721 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #6

    More information in the function documentation.

    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
    1
    • mrjjM mrjj

      @HenkCoder
      Hi np. its like

      QTextEdit * edit = qobject_cast <QTextEdit*> ( ui->tabWidget->widget(0)) ;
      
      if (edit) { // check is important as if its not a QTextEdit then edit is null and app crash :)
      edit->xxxxx();
      }
      
      H Offline
      H Offline
      HenkCoder
      wrote on last edited by HenkCoder
      #7

      @mrjj
      Hey, what does that It statement do? And what do I have to write instead of xxxxx() or is it what I actually have to write?

      mrjjM 1 Reply Last reply
      0
      • H HenkCoder

        @mrjj
        Hey, what does that It statement do? And what do I have to write instead of xxxxx() or is it what I actually have to write?

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by mrjj
        #8

        Hi

        Hey, what does that It statement do? And what do I have to write instead of xxxxx()?

        Hi. this statement takes a base pointer (QWidget *) and cast it to the concrete child type.
        In this case a QTextEdit.
        This only works it IS a QTextEdit there.
        So basically we do like

        SomeClass * ptr = ( Otherclass *) ui->tabWidget->widget(0)
        but in a saer manner that will fial its its not a QTextWidget.
        A pure cast /old type cast will always work but crash the app if
        it really not is a TextEdit

        edit->xxxxx(); is just to show to call functions in it. xxxx is just like any function it has.

        like
        edit->toPlainText():

        to get all text into QString or what ever you want to do with your textedit

        H 1 Reply Last reply
        1
        • mrjjM mrjj

          Hi

          Hey, what does that It statement do? And what do I have to write instead of xxxxx()?

          Hi. this statement takes a base pointer (QWidget *) and cast it to the concrete child type.
          In this case a QTextEdit.
          This only works it IS a QTextEdit there.
          So basically we do like

          SomeClass * ptr = ( Otherclass *) ui->tabWidget->widget(0)
          but in a saer manner that will fial its its not a QTextWidget.
          A pure cast /old type cast will always work but crash the app if
          it really not is a TextEdit

          edit->xxxxx(); is just to show to call functions in it. xxxx is just like any function it has.

          like
          edit->toPlainText():

          to get all text into QString or what ever you want to do with your textedit

          H Offline
          H Offline
          HenkCoder
          wrote on last edited by
          #9

          @mrjj
          Ok thanks, but I have two more question.

          1. Can declared that QTextEdit as a global pointer?
          2. what does the '0' mean in ui->tabWidget->widget(0)?
            That's it, no more question, thank you for your patience and sorry because I'm new!
          SGaistS 1 Reply Last reply
          0
          • H HenkCoder

            @mrjj
            Ok thanks, but I have two more question.

            1. Can declared that QTextEdit as a global pointer?
            2. what does the '0' mean in ui->tabWidget->widget(0)?
              That's it, no more question, thank you for your patience and sorry because I'm new!
            SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #10
            1. no there's no need for a global variable, you can use a member variable but do not start using globals for that.

            2. it's explained in the method documentation. It's the index of the widget you want to get.

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

            H 1 Reply Last reply
            1
            • SGaistS SGaist
              1. no there's no need for a global variable, you can use a member variable but do not start using globals for that.

              2. it's explained in the method documentation. It's the index of the widget you want to get.

              H Offline
              H Offline
              HenkCoder
              wrote on last edited by
              #11

              @SGaist
              Oh ok, but I need it as a global, can I declare it like that?
              Thank you for explaining me the widget(0) thing!

              mrjjM 1 Reply Last reply
              0
              • H HenkCoder

                @SGaist
                Oh ok, but I need it as a global, can I declare it like that?
                Thank you for explaining me the widget(0) thing!

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by mrjj
                #12

                @HenkCoder
                Hi
                Why would you need it as a global ?

                If you plan something like NotePad++ with tabs then each tab will be its own QTextEdit
                and you need to take the right one, depending on which tab user clicks.

                So you should hook up a slot to the signal
                https://doc.qt.io/qt-5/qtabwidget.html#currentChanged
                and there you got the index (the parameter) to use to ask for the widget, then
                convert it and you can alter text or what you want.

                H 1 Reply Last reply
                0
                • mrjjM mrjj

                  @HenkCoder
                  Hi
                  Why would you need it as a global ?

                  If you plan something like NotePad++ with tabs then each tab will be its own QTextEdit
                  and you need to take the right one, depending on which tab user clicks.

                  So you should hook up a slot to the signal
                  https://doc.qt.io/qt-5/qtabwidget.html#currentChanged
                  and there you got the index (the parameter) to use to ask for the widget, then
                  convert it and you can alter text or what you want.

                  H Offline
                  H Offline
                  HenkCoder
                  wrote on last edited by
                  #13

                  @mrjj
                  Hey, I need it as a global because I want to put other buttons like bold, italics, underline etc, but I cannot access the QTextEdit if it's not a global

                  mrjjM 1 Reply Last reply
                  0
                  • H HenkCoder

                    @mrjj
                    Hey, I need it as a global because I want to put other buttons like bold, italics, underline etc, but I cannot access the QTextEdit if it's not a global

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #14

                    @HenkCoder

                    Hi
                    You still dont need a global variable for that :)

                    Any button that must access the TextEdit can just get it.

                    like you cna make a helper function to make this easy

                    TextEdit * MainWindow::GetEditor() {
                      return q_objectcast<TextEdit *> ( ui->tabWidget->currentWidget() );
                    }
                    
                    then in BOLd button clicked etc , you can do
                    void BoldClicked() {
                    TextEdit * edit = GetEditor();  to have access to the current tab as a TextEdit
                    if (edit) {
                    make text bold ...
                    }
                    
                    }
                    
                    
                    
                    H 1 Reply Last reply
                    0
                    • mrjjM mrjj

                      @HenkCoder

                      Hi
                      You still dont need a global variable for that :)

                      Any button that must access the TextEdit can just get it.

                      like you cna make a helper function to make this easy

                      TextEdit * MainWindow::GetEditor() {
                        return q_objectcast<TextEdit *> ( ui->tabWidget->currentWidget() );
                      }
                      
                      then in BOLd button clicked etc , you can do
                      void BoldClicked() {
                      TextEdit * edit = GetEditor();  to have access to the current tab as a TextEdit
                      if (edit) {
                      make text bold ...
                      }
                      
                      }
                      
                      
                      
                      H Offline
                      H Offline
                      HenkCoder
                      wrote on last edited by
                      #15

                      @mrjj
                      Oooh, I understand.
                      Thank you all for the help!

                      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