AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 77080999
Accepted
Kauã Guilherme da Silva Leal
Kauã Guilherme da Silva Leal
Asked: 2023-09-11 18:52:10 +0800 CST2023-09-11 18:52:10 +0800 CST 2023-09-11 18:52:10 +0800 CST

Como vincular um botão a uma função usando a linguagem KV

  • 772

Estou tentando fazer uma UI básica usando KivyMD e Python (sou iniciante), mas tenho alguns problemas de licitação. Se algum de vocês puder me ajudar, ficaria muito grato. Este é o erro que meu IDE me retorna:

Arquivo "C:\Users\kaua.silva\Desktop\app_ig\app.kv", linha 67, em on_release: root.get_texts() ^^^^^^^^^^^^^^^ Arquivo "kivy\weakproxy .pyx", linha 32, em kivy.weakproxy.WeakProxy. getattr AttributeError: o objeto 'FloatLayout' não possui atributo 'get_texts'

arquivo main.py:

from kivymd.tools.hotreload.app import MDApp
from kivy.lang import Builder
from kivy.core.window import Window

class App(MDApp):
    def get_texts(self):
        user_text_field = self.root.ids.username
        user_text_field = user_text_field.text

        password_text_field = self.root.ids.passoword
        password_text_field = password_text_field.text

        quantity_text_field = self.root.ids.quantity
        quantity_text_field = quantity_text_field.text

        return user_text_field, password_text_field, quantity_text_field

    KV_FILES = ["app.kv"]
    DEBUG = True
    def build_app(self):
        Window.size = (320, 370)
        Window.resizable = 0
        return Builder.load_file("app.kv")

App().run()

arquivo app.kv:

FloatLayout: #:kivy !
    Image:
        source: "src/images/instagram_bg.jpg"
        allow_stretch: True
        keep_ratio: False
    MDLabel: 
        text: "Comment Bot"
        color: "#FFFFFF"
        font_size: "38sp"
        font_name: "font.ttf"
        pos_hint: {"center_x": 0.59, "center_y": 0.9}
    MDIcon:
        icon: "instagram"
        color: "#FFFFFF"
        font_size: "45sp"
        pos_hint: {"center_x": 0.85, "center_y": 0.90}
    MDTextField:
        id: username
        line_color_normal: "#ffffff"
        line_color_focus: "#ffffff"
        hint_text: "Nome de usuário ou e-mail"
        size_hint_x: .8
        pos_hint: {"center_x": 0.5, "center_y": 0.75}
        mode: "rectangle"
        hint_text_color_normal: "white"
        hint_text_color_focus: "white"
        text_color_focus: "#ffffff"
        text_color_normal: "#ffffff"
        font_size: "20sp"
    MDTextField:
        id: password
        line_color_normal: "#ffffff"
        line_color_focus: "#ffffff"
        text_color: "#ffffff"
        hint_text: "Senha"
        size_hint_x: .8
        pos_hint: {"center_x": 0.5, "center_y": 0.57}
        mode: "rectangle"
        hint_text_color_normal: "white"
        hint_text_color_focus: "white"
        text_color_focus: "#ffffff"
        text_color_normal: "#ffffff"
        font_size: "20sp"
    MDTextField:
        id: quantity
        color_mode: "primary"
        line_color_normal: "#ffffff"
        line_color_focus: "#ffffff"
        hint_text: "Quantidade de comentários"
        size_hint_x: .8
        pos_hint: {"center_x": 0.5, "center_y": 0.39}
        mode: "rectangle"
        hint_text_color_normal: "white"
        hint_text_color_focus: "white"
        text_color_focus: "#ffffff"
        text_color_normal: "#ffffff"
        font_size: "20sp"
    MDRaisedButton:
        text: "Iniciar"
        theme_text_color: "Custom"
        text_color: "#FFFFFF"
        font_style: "Button"
        md_bg_color: "#C8439C"
        size_hint: .5, .13
        pos_hint: {"center_x": .5, "center_y": .155}
        font_size: "16sp"
        on_release: root.get_texts()

Quero vincular a função get_texts (é apenas uma função simbólica, que substituirei por outra) ao MDRaisedButton, mas o vscode não está reconhecendo a função. Obrigado antecipadamente!

python
  • 1 1 respostas
  • 13 Views

1 respostas

  • Voted
  1. Best Answer
    Fatemeh Hosseini
    2023-09-11T19:08:40+08:002023-09-11T19:08:40+08:00

    Tente seguir o código do método abaixo:

    from kivymd.app import MDApp
    from kivy.lang import Builder
    from kivy.core.window import Window
    
    class MyApp(MDApp):
        def build(self):
            Window.size = (320, 370)
            Window.resizable = 0
            return Builder.load_file("app.kv")
    
        def get_texts(self):
            user_text_field = self.root.ids.username
            user_text = user_text_field.text
    
            password_text_field = self.root.ids.password
            password_text = password_text_field.text
    
            quantity_text_field = self.root.ids.quantity
            quantity_text = quantity_text_field.text
    
            return user_text, password_text, quantity_text
    
    if __name__ == "__main__":
        MyApp().run()
    

    e mudei o app.kv conforme abaixo:

    FloatLayout:
        Image:
            source: "src/images/instagram_bg.jpg"
            allow_stretch: True
            keep_ratio: False
        # add your other widgets here . . . (your other widgets)
        MDRaisedButton:
            text: "Iniciar"
            theme_text_color: "Custom"
            text_color: "#FFFFFF"
            font_style: "Button"
            md_bg_color: "#C8439C"
            size_hint: .5, .13
            pos_hint: {"center_x": .5, "center_y": .155}
            font_size: "16sp"
            on_release: app.get_texts()
    

    tente esses códigos, por favor.

    • 0

relate perguntas

  • Como divido o loop for em 3 quadros de dados individuais?

  • Como verificar se todas as colunas flutuantes em um Pandas DataFrame são aproximadamente iguais ou próximas

  • Como funciona o "load_dataset", já que não está detectando arquivos de exemplo?

  • Por que a comparação de string pandas.eval() retorna False

  • Python tkinter/ ttkboostrap dateentry não funciona quando no estado somente leitura

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    destaque o código em HTML usando <font color="#xxx">

    • 2 respostas
  • Marko Smith

    Por que a resolução de sobrecarga prefere std::nullptr_t a uma classe ao passar {}?

    • 1 respostas
  • Marko Smith

    Você pode usar uma lista de inicialização com chaves como argumento de modelo (padrão)?

    • 2 respostas
  • Marko Smith

    Por que as compreensões de lista criam uma função internamente?

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Marko Smith

    java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duratio

    • 3 respostas
  • Marko Smith

    Por que 'char -> int' é promoção, mas 'char -> short' é conversão (mas não promoção)?

    • 4 respostas
  • Marko Smith

    Por que o construtor de uma variável global não é chamado em uma biblioteca?

    • 1 respostas
  • Marko Smith

    Comportamento inconsistente de std::common_reference_with em tuplas. Qual é correto?

    • 1 respostas
  • Marko Smith

    Somente operações bit a bit para std::byte em C++ 17?

    • 1 respostas
  • Martin Hope
    fbrereto Por que a resolução de sobrecarga prefere std::nullptr_t a uma classe ao passar {}? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 Você pode usar uma lista de inicialização com chaves como argumento de modelo (padrão)? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi Por que as compreensões de lista criam uma função internamente? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A formato fmt %H:%M:%S sem decimais 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python std::views::filter do C++20 não filtrando a visualização corretamente 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute Por que 'char -> int' é promoção, mas 'char -> short' é conversão (mas não promoção)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa Por que o construtor de uma variável global não é chamado em uma biblioteca? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis Comportamento inconsistente de std::common_reference_with em tuplas. Qual é correto? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev Por que os compiladores perdem a vetorização aqui? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan Somente operações bit a bit para std::byte em C++ 17? 2023-08-17 17:13:58 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve