Как использовать одну кнопку для ввода данных из нескольких записей Tkinter? - PullRequest
0 голосов
/ 08 января 2020

Эта программа написана на Tkinter. Я пишу программу, которая будет иметь несколько полей ввода, где пользователь будет вводить определенные параметры. Я хочу, чтобы там была одна кнопка, которая сохраняет все записи из всех полей ввода, чтобы позже использовать их в другой части моей программы. В этот момент поля ввода и кнопка готовы, но кнопка ничего не делает. Как я мог go сделать так, чтобы кнопка прочитала и сохранила все записи? Спасибо!

Ответы [ 2 ]

1 голос
/ 09 января 2020

Вам просто нужно получить данные в записях и сохранить их как переменные внутри функций и глобализировать эти переменные. После этого просто вызовите все функции в отдельной функции. А затем передайте эту функцию в качестве команды для кнопки.

import tkinter as tk
root = tk.Tk()

e_1 = tk.Entry(root)
e_1.pack()
e_2 = tk.Entry(root)
e_2.pack()
e_3 = tk.Entry(root)
e_3.pack()

var_1 = 0
var_2 = 0
var_3 = 0


def func_1():
    global var_1
    var_1 = e_1.get()


def func_2():
    global var_2
    var_2 = e_2.get()


def func_3():
    global var_3
    var_3 = e_3.get()


def store_all():
    func_1()
    func_2()
    func_3()
    print(var_1)
    print(var_2)
    print(var_3)


b = tk.Button(root, text="get", width=10, command=store_all)
b.pack()

root.mainloop()

Я использовал print() внутри функции, чтобы подтвердить вам, что значения успешно сохранены. Вы можете просто удалить их.

0 голосов
/ 09 января 2020

Вот пример программы, которая читает содержимое одного Entry и печатает его: https://effbot.org/tkinterbook/entry.htm#patterns

Ниже вы можете найти код в python 3:

from tkinter import *

master = Tk()

e = Entry(master)
e.pack()

e.focus_set()

def callback():
    print(e.get())

b = Button(master, text="get", width=10, command=callback)
b.pack()

mainloop()

Просто добавьте больше Entry виджетов и прочитайте их все по методу callback.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...