omz:forum

    • Register
    • Login
    • Search
    • Recent
    • Popular

    Welcome!

    This is the community forum for my apps Pythonista and Editorial.

    For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.


    Textfield with ui

    Pythonista
    4
    19
    4067
    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.
    • cvp
      cvp @Python567 last edited by

      @Python567 start from here

      import ui
      tf = ui.TextField()
      tf.name = 'example for @Python567'
      tf.frame = (0,0,300,32)
      tf.keyboard_type = ui.KEYBOARD_DECIMAL_PAD
      tf.present('sheet')
      tf.begin_editing()
      
      MrEVandQuestions 1 Reply Last reply Reply Quote 0
      • Python567
        Python567 last edited by Python567

        Oh, thanks. But two question.

        1. For what is the „tf“ ?
        2. And there I can write something else in? For example „TextField.action = ...“ ?
        cvp 1 Reply Last reply Reply Quote 0
        • cvp
          cvp @Python567 last edited by

          @Python567
          tf is the name you give to your TextField

          to set something in iT, use the text attribute

          tf.text = 'your text'
          
          1 Reply Last reply Reply Quote 0
          • Python567
            Python567 last edited by

            Ok and where/how can I define that for example:

            if textfield == „Test123“:
                print („Hello“)
            cvp 3 Replies Last reply Reply Quote 0
            • cvp
              cvp @Python567 last edited by

              @Python567 it depends: if you want to test that during introduction of data or at end...

              1 Reply Last reply Reply Quote 0
              • cvp
                cvp @Python567 last edited by

                @Python567 try this and press enter at end of typing Test123

                import ui
                tf = ui.TextField()
                tf.name = 'example for @Python567'
                tf.frame = (0,0,300,32)
                tf.keyboard_type = ui.KEYBOARD_DECIMAL_PAD
                tf.text = ''
                def tf_action(sender):
                	if sender.text == "Test123":
                		print("Hello")
                tf.action = tf_action
                tf.present('sheet')
                tf.begin_editing()
                
                1 Reply Last reply Reply Quote 0
                • cvp
                  cvp @Python567 last edited by

                  @Python567 you can use also this

                  tf.placeholder = 'Your own explanation'
                  

                  test it

                  1 Reply Last reply Reply Quote 0
                  • Python567
                    Python567 last edited by

                    Oh thanks, i test it

                    1 Reply Last reply Reply Quote 0
                    • Python567
                      Python567 last edited by

                      I have here a programm which can find out all prime numbers. But I have the Problem, that I only can print the result in the console. I write tf.text = Right but it don‘t works why? I get a error with strand int. But I don‘t know how to fix that.

                      import ui
                      
                      dialog = ui.View()
                      
                      
                      tf = ui.TextField()
                      tf.name = 'Test'
                      tf.frame = (50,50,1000,100)
                      tf.keyboard_type = ui.KEYBOARD_DECIMAL_PAD
                      tf.text = ''
                      tf.placeholder = 'Gib was ein!'
                      
                      def primzahl():
                        p = int(tf.text)
                        i = 2
                        istPrimzahl = True 
                        teiler = 0
                        
                        while (i < p):
                          if p % i == 0:
                        			istPrimzahl = False
                        			teiler = i 
                        			break 
                          i += 1
                      			
                        if istPrimzahl:
                          	tf.text = 'Die Zahl', p , 'ist eine Primzahl.'
                      			
                        else:
                          	print ("Die Zahl",p, "ist keine Primzahl, weil sie durch " , i , " teilbar ist.") 
                          	
                          	
                      def tf_action(sender):
                      	primzahl()
                        
                      
                      
                      tf.action = tf_action
                      
                      dialog.add_subview(tf)
                      
                      ebutton = ui.Button()
                      
                      ebutton.title = '='
                      ebutton.frame = (50,200,1000,100)
                      ebutton.background_color = "red"
                      def ebutton_action(sender):
                      	tf.text = "gedrückt!"
                      	
                      ebutton.action = ebutton_action
                      
                      menubutton = ui.ButtonItem()
                      menubutton.title = 'fghjk'
                      dialog.right_button_items = [menubutton]
                      
                      
                      dialog.add_subview(ebutton)
                      dialog.present('fullscreen')
                      tf.begin_editing()
                      #sheet
                      cvp 1 Reply Last reply Reply Quote 0
                      • cvp
                        cvp @Python567 last edited by

                        @Python567 try already with

                                tf.text = 'Die Zahl ' + str(p) + ' ist eine Primzahl.'
                        
                        1 Reply Last reply Reply Quote 0
                        • Python567
                          Python567 last edited by Python567

                          No, thanks:)

                          cvp 1 Reply Last reply Reply Quote 0
                          • cvp
                            cvp @Python567 last edited by

                            @Python567 said:

                            No

                            Why no?

                            1 Reply Last reply Reply Quote 0
                            • Python567
                              Python567 last edited by

                              @cvp Sorry, I wanna write a first something else wich beginn with „no“. 😐

                              cvp 1 Reply Last reply Reply Quote 0
                              • cvp
                                cvp @Python567 last edited by

                                @Python567 no problem 😉

                                1 Reply Last reply Reply Quote 0
                                • ccc
                                  ccc last edited by ccc

                                  F-strings (tf.text = f'Die Zahl {p} ist eine Primzahl.') are a single instruction in Python bytecode.
                                  This makes them faster and more efficient than legacy string formatting https://www.scivision.dev/python-f-string-speed
                                  Improved readability is also a clear value.

                                  1 Reply Last reply Reply Quote 1
                                  • MrEVandQuestions
                                    MrEVandQuestions @cvp last edited by

                                    @cvp that code works cool but what if I want to use it without presenting, the keyboard shortcuts?

                                    cvp 1 Reply Last reply Reply Quote 0
                                    • cvp
                                      cvp @MrEVandQuestions last edited by

                                      @MrEVandQuestions said:

                                      use it without presenting, the keyboard

                                      Remove the line

                                      tf.begin_editing()
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • MrEVandQuestions
                                        MrEVandQuestions last edited by

                                        OK. Thanks!

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post
                                        Powered by NodeBB Forums | Contributors