Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. QlineEdit with return to next QlineEdit
Forum Updated to NodeBB v4.3 + New Features

QlineEdit with return to next QlineEdit

Scheduled Pinned Locked Moved German
18 Posts 4 Posters 2.2k 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.
  • R Offline
    R Offline
    Roman2052
    wrote on last edited by Roman2052
    #9

    Normalerweise sage ich ja.@jsulm
    Self. Connect(self. Button, SIGNAL( "clicked()") , set value)
    Def setvalue() ;
    Self. QlineEdit. SetText("test")

    Jetzt habe ich aber keine QlineEdit sondern diese Adresse bzw. Hexa Code.

    jsulmJ 1 Reply Last reply
    0
    • R Roman2052

      Normalerweise sage ich ja.@jsulm
      Self. Connect(self. Button, SIGNAL( "clicked()") , set value)
      Def setvalue() ;
      Self. QlineEdit. SetText("test")

      Jetzt habe ich aber keine QlineEdit sondern diese Adresse bzw. Hexa Code.

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

      @Roman2052 said in QlineEdit with return to next QlineEdit:

      Jetzt habe ich aber keine QlineEdit sondern diese Adresse bzw. Hexa Code

      Was für eine Adresse?
      Was soll das sein:

      Self. Connect(self. Button, SIGNAL( "clicked()") , set value)
      

      ?
      Kannst du bitte deinen Code posten und nicht etwas was keinen Sinn ergibt?
      Und warum reden wir jetzt von clicked() signal wo doch vorher focusChanged() das Thema war?

      Verbinde einfach einen Slot mit clicked() Signal von deinem Button. In diesem Slot nehme nächstes QLineEdit und schreibe den Text da rein. Falls du in den QLineEdit schreiben willst welches gerade Fokus hat kannst du ja über die QLineEdits iterieren und mit https://doc.qt.io/qt-5/qwidget.html#focus-prop rausfinden welches davon Fokus hat...

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

      1 Reply Last reply
      0
      • R Offline
        R Offline
        Roman2052
        wrote on last edited by jsulm
        #11

        hallo @jsulm ,

        sorry war bisschen verwirend.
        hier das skript

        def SetOperator(old,now):
            old.setText(">")
        
        def changedFocusSlot(old, now):
            if (now==None and QApplication.activeWindow()!=None):
                print "set focus to the active window"
                QApplication.activeWindow().setFocus()
            w.connect(w.pushButtonKleiner,SIGNAL("clicked()"),partial(SetOperator,old,now))
        
        app = QApplication(sys.argv)
        w = loadUi("RechnenMaxim.ui")
        w.connect(w.NeueAufgabe,SIGNAL("clicked()"),NeueAufgabeGen)
        w.connect(w.LoesungZeigen,SIGNAL("clicked()"),Loesung)
        w.connect(w.radioButtonPlus,SIGNAL("clicked()"),deselectSelection)
        w.connect(w.radioButtonMinus,SIGNAL("clicked()"),deselectSelection)
        w.connect(w.radioButtonMal,SIGNAL("clicked()"),deselectSelection)
        w.connect(w.radioButtonGeteilt,SIGNAL("clicked()"),deselectSelection)
        w.connect(w.radioAdd,SIGNAL("clicked()"),deselectSelection)
        w.connect(w.radioComp,SIGNAL("clicked()"),deselectSelection)
        QObject.connect(app, SIGNAL("focusChanged(QWidget *, QWidget *)"), changedFocusSlot)
        #w.connect(w.pushButtonKleiner,SIGNAL("clicked()"),partial(SetOperator,focus=changedFocusSlot))
         
        w.show()
        sys.exit(app.exec_())
        
        1 Reply Last reply
        0
        • R Offline
          R Offline
          Roman2052
          wrote on last edited by Roman2052
          #12

          Zum ablauf.
          Ich möchte eine LineEdit per maus klick anwählen-> dann auf ein Button drücken-> und die Line soll dan befült werden. Führe ich mein skript aus, wird alles was ich mit der Maus angeklickt habe mit dem Wert befüllt. Die old scheint eine collection zu sein, ist das richtig?

          jsulmJ 1 Reply Last reply
          0
          • R Roman2052

            Zum ablauf.
            Ich möchte eine LineEdit per maus klick anwählen-> dann auf ein Button drücken-> und die Line soll dan befült werden. Führe ich mein skript aus, wird alles was ich mit der Maus angeklickt habe mit dem Wert befüllt. Die old scheint eine collection zu sein, ist das richtig?

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

            @Roman2052 Wie ich schon vorgeschlagen habe:
            "Verbinde einfach einen Slot mit clicked() Signal von deinem Button. In diesem Slot nehme nächstes QLineEdit und schreibe den Text da rein. Falls du in den QLineEdit schreiben willst welches gerade Fokus hat kannst du ja über die QLineEdits iterieren und mit https://doc.qt.io/qt-5/qwidget.html#focus-prop rausfinden welches davon Fokus hat..."

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

            1 Reply Last reply
            0
            • R Offline
              R Offline
              Roman2052
              wrote on last edited by
              #14

              @jsulm Danke
              Aber wenn doch auf den button clicke dann ist doch der focus nicht mehr auf der LineEdit sondern auf dem Button. Oder habe ich da ein verständniss problem?

              jsulmJ 1 Reply Last reply
              0
              • R Roman2052

                @jsulm Danke
                Aber wenn doch auf den button clicke dann ist doch der focus nicht mehr auf der LineEdit sondern auf dem Button. Oder habe ich da ein verständniss problem?

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

                @Roman2052 Stimmt. Das wird so nicht funktionieren. Was du dann machen kannst: sobald eines der line edits ausgewählt wird (Fokus) merkst du dir diese Instanz (self.__lastLineEdit = ...) und benutzt die sobald Button angeclickt wird. D.h. der clicked() Signal is mit nur einem Slot verbunden, in diesem Slot benutzt du die zuvor gespeicgerte Referenz zum zuletzt ausgewählten LineEdit.

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

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  Roman2052
                  wrote on last edited by
                  #16

                  @jsulm
                  es scheint noch Irgendwas falsch zu sein :(

                  w.Operator_1.selectionChanged.connect(partial(safeLastLine,1))
                  w.Operator_2.selectionChanged.connect(partial(safeLastLine,2))
                  w.Operator_3.selectionChanged.connect(partial(safeLastLine,3))
                  w.Operator_4.selectionChanged.connect(partial(safeLastLine,4))
                  w.Operator_5.selectionChanged.connect(partial(safeLastLine,5))
                  w.Operator_6.selectionChanged.connect(partial(safeLastLine,6))

                  def safeLastLine(i):
                  nowLine=None
                  nowLine=getattr(w,"Operator_{}".format(i))
                  w.pushButtonKleiner.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonKleiner.text())))
                  w.pushButtonGleich.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonGleich.text())))
                  w.pushButtonGroesser.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonGroesser.text())))

                  def SetOperator(nowLine,Text):
                  nowLine.setText(Text)
                  nowLine=None

                  Wenn ich jetzt Operator_1 doppelt anklicke und auf den pushButtonKleiner drücke schreibt er mir in den Operator_1 das zeichen "<" rein. Soweit gut.
                  Wenn ich jetzt Operator_2 doppelt anklicke und auf den pushButtonGleich drücke schreibt er mir jetzt in den Operator_1 und in den Operator_2 das zeichen "=" rein.
                  es geht dann immer so weiter.
                  Warum?

                  jsulmJ 1 Reply Last reply
                  0
                  • R Roman2052

                    @jsulm
                    es scheint noch Irgendwas falsch zu sein :(

                    w.Operator_1.selectionChanged.connect(partial(safeLastLine,1))
                    w.Operator_2.selectionChanged.connect(partial(safeLastLine,2))
                    w.Operator_3.selectionChanged.connect(partial(safeLastLine,3))
                    w.Operator_4.selectionChanged.connect(partial(safeLastLine,4))
                    w.Operator_5.selectionChanged.connect(partial(safeLastLine,5))
                    w.Operator_6.selectionChanged.connect(partial(safeLastLine,6))

                    def safeLastLine(i):
                    nowLine=None
                    nowLine=getattr(w,"Operator_{}".format(i))
                    w.pushButtonKleiner.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonKleiner.text())))
                    w.pushButtonGleich.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonGleich.text())))
                    w.pushButtonGroesser.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonGroesser.text())))

                    def SetOperator(nowLine,Text):
                    nowLine.setText(Text)
                    nowLine=None

                    Wenn ich jetzt Operator_1 doppelt anklicke und auf den pushButtonKleiner drücke schreibt er mir in den Operator_1 das zeichen "<" rein. Soweit gut.
                    Wenn ich jetzt Operator_2 doppelt anklicke und auf den pushButtonGleich drücke schreibt er mir jetzt in den Operator_1 und in den Operator_2 das zeichen "=" rein.
                    es geht dann immer so weiter.
                    Warum?

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

                    @Roman2052 Hier ist so einiges falsch. Warum selectionChanged? Das hat ja mit Fokus nchts zu tun.

                    def safeLastLine(i):
                        nowLine=None // sollte das nicht self.nowLine sein - wie willst du sonst später darauf zugreifen?
                        nowLine=getattr(w,"Operator_{}".format(i))
                        # Wieso machst du connect hier? Dir ist  schon klar, dass du jedesmal die connects machst wenn safeLastLine aufgerufen wird? Mach das einmal im Konstruktor
                    w.pushButtonKleiner.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonKleiner.text())))
                    w.pushButtonGleich.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonGleich.text())))
                    w.pushButtonGroesser.pressed.connect(partial(SetOperator,nowLine,Text=str(w.pushButtonGroesser.text())))
                    

                    Die Idee ist eigentlich etwas anders:

                    # Das ist der slot für QApplication::focusChanged
                    def onFocusChanged(self, old, now):
                        # Hier sollte noch geprüft werden ob now ein QLineEdit ist und nur dann self.__now setzen
                        self.__now = now
                    
                    # Das ist der slot für die Buttons (musst du dich noch um den Text kümmern)
                    def onButtonClicked(self):
                        if self.__now:
                            self.__now.setText("TEXT")
                    

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

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      Roman2052
                      wrote on last edited by
                      #18

                      @jsulm
                      DANKE du bist der Beste :)

                      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