Python 库 kivy - 弹出文本输入

问题描述 投票:0回答:0

大家好我正在写一个分拣货物的小程序,这个程序已经在控制台版本中准备好了,但我想在图形版本中实现它。问题的本质:我在什么时间坐着,想着如何实现这部分代码的带文本输入的弹窗。我会很感激你的帮助。 这是代码:

def add_product(self, instance):
    code = input("Введите код товара: ")
    category_code = input("Введите код категории товара: ")
    name = input("Введите наименование товара: ")
    description = input("Введите описание товара: ")
    price = float(input("Введите цену товара: "))
    quantity = int(input("Введите количество товара: "))
    popup = Popup(title='Добавить товар', content=content, size_hint=(None, None), size=(400, 400))
    popup.open()
    cursor.execute("INSERT INTO products VALUES (?, ?, ?, ?, ?, ?)",
                   (code, category_code, name, description, price, quantity))
    conn.commit()
    
# Удаление товара
def delete_product(self, instance):
    code = input("Введите код товара для удаления: ")
    popup = Popup(title='Удалить товар', content=content, size_hint=(None, None), size=(400, 400))
    popup.open()
    cursor.execute("DELETE FROM products WHERE code=?", (code,))
    conn.commit()

# Корректировка товара
def edit_product(self, instance):
    code = input("Введите код товара для корректировки: ")
    cursor.execute("SELECT * FROM products WHERE code=?", (code,))
    product = cursor.fetchone()
    if product is not None:
        print("Текущая информация о товаре:")
        print(product)
    popup = Popup(title='Изменить товар', content=content, size_hint=(None, None), size=(400, 400))
    popup.open()
    # Ввод новых значений для товара
    new_code = input("Введите новый код товара: ")
    popup = Popup(title='Введите новый код товара:', content=content, size_hint=(None, None), size=(400, 400))
    popup.open()
    new_category_code = input("Введите новый код категории товара: ")
    new_name = input("Введите новое наименование товара: ")
    new_description = input("Введите новое описание товара: ")
    new_price = float(input("Введите новую цену товара: "))
    new_quantity = int(input("Введите новое количество товара: "))

    # Обновление записи в базе данных
    cursor.execute("UPDATE products SET code=?, category_code=?, name=?, description=?, price=?, quantity=? WHERE code=?",
                   (new_code, new_category_code, new_name, new_description, new_price, new_quantity, code))
    conn.commit()

    print("Информация о товаре успешно обновлена.")

# Поиск товара по наименованию и модели
def search_product(self, instance):
    search_term = input("Введите наименование или модель товара для поиска: ")

    cursor.execute("SELECT * FROM products WHERE name LIKE ? OR description LIKE ?",
                   (f"%{search_term}%", f"%{search_term}%"))
    products = cursor.fetchall()
    if products:
        print("Результаты поиска:")
        for product in products:
            print(product)
    else:
        print("Товар не найден.")
# Сортировка товаров по коду, цене и имени
def sort_products(self, instance):
    sort_option = input("Выберите опцию сортировки (code, price, name): ")
    cursor.execute(f"SELECT * FROM products ORDER BY {sort_option}")
    products = cursor.fetchall()
    if products:
        print("Отсортированный список товаров:")
        for product in products:
            print(product)
    else:
        print("Список товаров пуст.")

这是我尝试过的:

 def show_add_product(self, instance):
        content = BoxLayout(orientation='vertical')
        code_input = TextInput(hint_text='Код товара')
        content.add_widget(code_input)
        category_code_input = TextInput(hint_text='Код категории товара')
        content.add_widget(category_code_input)
        name_input = TextInput(hint_text='Наименование товара')
        content.add_widget(name_input)
        description_input = TextInput(hint_text='Описание товара')
        content.add_widget(description_input)
        price_input = TextInput(hint_text='Цена товара')
        content.add_widget(price_input)
        quantity_input = TextInput(hint_text='Количество товара')
        content.add_widget(quantity_input)
        add_button = Button(text='Добавить', size_hint=(None, None), size=(100, 50))
        content.add_widget(add_button)

        def add_product(instance):
            code = code_input.text
            category_code = category_code_input.text
            name = name_input.text
            description = description_input.text
            price = float(price_input.text)
            quantity = int(quantity_input.text)

            cursor.execute("INSERT INTO products VALUES (?, ?, ?, ?, ?, ?)",
                           (code, category_code, name, description, price, quantity))
            conn.commit()

            popup.dismiss()

        add_button.bind(on_press=add_product)

        popup = Popup(title='Добавить товар', content=content, size_hint=(None, None), size=(400, 400))
        popup.open()

但是添加按钮没有反应

python kivy popup inputtext
© www.soinside.com 2019 - 2024. All rights reserved.