[Python] Cannot paste external text to kivy window (Python)

Discussão em 'Python' iniciado por Stack, Setembro 24, 2024.

  1. Stack

    Stack Membro Participativo

    I'm starting to learn Kivy to make GUIs and all is fine, but I can't paste external text to my TextInput widgets. There is no problem with copying and pasting text internal to the kivy window (copy from a TextInput to another). The issue is that I cannot paste text external to the kivy window (copy text from say the browser and paste it into a TextInput). My OS: Kali Linux Rolling 2020.1 (Debian) Here is some of my code

    class LoginPage(Screen):

    keep_logged_var = BooleanProperty() # declaring some variables to use in the .kv file
    school_code_var = StringProperty()
    user_id_var = StringProperty()
    password_var = StringProperty()
    failed_var = BooleanProperty()


    def __init__(self, **kwargs):
    super(LoginPage, self).__init__(**kwargs)

    self.keep_logged_var = keep_logged # assigning value to my variables
    if self.keep_logged_var:
    self.school_code_var = school_code
    self.user_id_var = user_id
    self.password_var = password
    self.failed_var = False


    def login(self, keep_logged, school_code_, user_id_, password_):
    if keep_logged == 'normal': keep_logged = False
    elif keep_logged == 'down': keep_logged = True

    global token, school_code, user_id, password
    school_code = school_code_
    user_id = user_id_
    password = password_
    token = get_token(school_code, user_id, password)

    if token == 'Failed to log in': # login failed
    print('failed')
    self.failed_var = True
    else: # login successful
    if keep_logged:
    settings['keep_logged'] = True
    settings['school_code'] = school_code
    settings['user_id'] = user_id
    settings['password'] = password
    with open('settings.json', 'w') as file:
    json.dump(settings, file, indent=2)

    global scheda
    scheda = get_schede()


    and here is my kivy file

    <LoginPage>:

    keep_logged: root.keep_logged_var
    school_code: root.school_code_var
    user_id: root.user_id_var
    password: root.password_var
    failed: root.failed_var


    name: 'loginpage' # name of the window


    FloatLayout:

    canvas:
    Color:
    rgba: 1,1,1,1
    Rectangle:
    size: root.width, root.height

    Label: # school code label
    text: 'School Code: '
    font_size: 20
    pos_hint: {'x': -0.15, 'y':0.2}
    color: 0,0,0,1

    TextInput: # school code entry
    id: school_code_id
    text: root.school_code if root.keep_logged else ''
    multiline: False
    size_hint: 0.2, 0.05
    pos_hint: {'x': 0.45, 'y': 0.67}


    Label: # user id label
    text: 'User ID '
    font_size: 20
    pos_hint: {'x': -0.15, 'y': 0.1}
    color: 0,0,0,1

    TextInput: # user id entry
    id: user_id_id
    size_hint: 0.2, 0.05
    pos_hint: {'x': 0.45, 'y': 0.57}
    multiline: False
    text: root.user_id if root.keep_logged else ''


    Label: # password label
    text: 'Password '
    font_size: 20
    pos_hint: {'x': -0.15, 'y': 0}
    color: 0,0,0,1


    TextInput: # password entry
    id: password_id
    size_hint: 0.2, 0.05
    pos_hint: {'x': 0.45, 'y': 0.47}
    password: True
    multiline: False
    text: root.password if root.keep_logged else ''


    CheckBox: # keep me logged in
    id: keep_logged_id
    size_hint: 0.4, 0.1
    background_color: 1,1,1,1
    color: 0,0,0,1
    pos_hint: {'x': 0.05, 'y': 0.33}
    active: root.keep_logged_var

    Label: # keep me logged in
    text: 'Keep me logged in'
    color: 0,0,0,1
    font_size: 15
    pos_hint: {'x': -0.14, 'y': -0.12}


    Button: # login button
    text: 'Login'
    size_hint: 0.13, 0.06
    color: 1,1,1,1
    pos_hint: {'x': 0.5, 'y': 0.35}
    on_press:
    root.login(keep_logged_id.state, school_code_id.text, user_id_id.text, password_id.text)


    Label: # failed login label
    text: 'Login failed' if root.failed else ''
    font_size: 20
    pos_hint: {'y': -0.2}
    color: 1,0,0,1


    Thanks for your help

    Continue reading...

Compartilhe esta Página