AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 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

如何使用KV语言将按钮与功能绑定

  • 772

我正在尝试使用 KivyMD 和 Python 制作一个基本的 UI(我是初学者),但我遇到了一些出价问题。如果你们中有人能帮助我,我将非常感激。这是我的 IDE 返回给我的错误:

文件“C:\Users\kaua.silva\Desktop\app_ig\app.kv”,第 67 行,在 on_release 中: root.get_texts() ^^^^^^^^^^^^^^^ 文件“kivy\weakproxy .pyx”,第 32 行,在 kivy.weakproxy.WeakProxy 中。getattr AttributeError:“FloatLayout”对象没有属性“get_texts”

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()

应用程序.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()

我想将函数 get_texts (它只是一个符号函数,我将替换为另一个函数)与 MDRaishedButton 绑定,但 vscode 无法识别该函数。提前致谢!

python
  • 1 1 个回答
  • 13 Views

1 个回答

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

    尝试以下方法代码如下:

    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()
    

    我已将 app.kv 更改如下:

    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()
    

    请尝试该代码。

    • 0

相关问题

  • 如何将 for 循环拆分为 3 个单独的数据框?

  • 如何检查 Pandas DataFrame 中的所有浮点列是否近似相等或接近

  • “load_dataset”如何工作,因为它没有检测示例文件?

  • 为什么 pandas.eval() 字符串比较返回 False

  • Python tkinter/ ttkboostrap dateentry 在只读状态下不起作用

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    使用 <font color="#xxx"> 突出显示 html 中的代码

    • 2 个回答
  • Marko Smith

    为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类?

    • 1 个回答
  • Marko Smith

    您可以使用花括号初始化列表作为(默认)模板参数吗?

    • 2 个回答
  • Marko Smith

    为什么列表推导式在内部创建一个函数?

    • 1 个回答
  • Marko Smith

    我正在尝试仅使用海龟随机和数学模块来制作吃豆人游戏

    • 1 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

    为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)?

    • 4 个回答
  • Marko Smith

    为什么库中不调用全局变量的构造函数?

    • 1 个回答
  • Marko Smith

    std::common_reference_with 在元组上的行为不一致。哪个是对的?

    • 1 个回答
  • Marko Smith

    C++17 中 std::byte 只能按位运算?

    • 1 个回答
  • Martin Hope
    fbrereto 为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 您可以使用花括号初始化列表作为(默认)模板参数吗? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi 为什么列表推导式在内部创建一个函数? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A fmt 格式 %H:%M:%S 不带小数 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python C++20 的 std::views::filter 未正确过滤视图 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute 为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa 为什么库中不调用全局变量的构造函数? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis std::common_reference_with 在元组上的行为不一致。哪个是对的? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev 为什么编译器在这里错过矢量化? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan C++17 中 std::byte 只能按位运算? 2023-08-17 17:13:58 +0800 CST

热门标签

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

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve