Рубрики
Без рубрики

Список Tkinter и меню опций – Как использовать виджеты списка и меню опций?

Эй, ребята, добро пожаловать в эту статью о списке Tkinter и меню опций с помощью Tkinter. Я расскажу вам о некоторых примерах того же самого.

Автор оригинала: Pankaj Kumar.

Эй, ребята, добро пожаловать в эту статью о списке Tkinter и меню опций с помощью Tkinter. Я расскажу вам о некоторых примерах того же самого.

содержание

  • Что такое список?
  • Создайте свой первый виджет списка Tkinter
    • Добавление элементов в список по отдельности
    • Добавление нескольких элементов в список Tkinter с помощью циклов
    • Добавление кнопок Tkinter для удаления элементов списка
    • Полный код для реализации виджета списка Tkinter
  • Что такое меню опций?
  • Создайте свое первое меню опций Tkinter
    • Создание объекта Tkinter OptionMenu
    • Полный код для реализации виджета Tkinter OptionMenu
  • Вывод

Что такое список?

Виджет Listbox в Tkinter широко используется для отображения набора элементов пользователю. Пользователь может выбрать один из этих элементов.

У нас есть базовый стартовый код, который мы всегда получаем, 400 x 400, и у нас есть значок для названия.

from tkinter import *

root=Tk()
root.title("Listbox demo")
root.geometry("400x480")

root.mainloop()

Поэтому, чтобы создать список, вы просто определяете его, как всегда, и список-это просто тип виджета с tkinter.

Создайте свой первый виджет списка Tkinter

Давайте создадим список, назовем его my_listbox и установим его равным Listbox() и поместим его в root .

Мы упакуем это на экране, и давайте дадим этому pack() и дадим ему “день выплаты жалованья” в размере 15.

#Listbox
my_listbox=Listbox(root)
my_listbox.pack(pady=15)

Добавление элементов в список по отдельности

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

Мы будем использовать метод my_listbox.insert . Этот метод принимает два параметра. Там есть индекс и строка.

Таким образом, индекс-это номер индекса, элемент в нашем списке, позиция, в которую мы хотим его поместить, и первый – “0”.

# Add item to listbox

my_listbox.insert(END, "First")  
my_listbox.insert(END, "Second")

Добавление нескольких элементов в список Tkinter с помощью циклов

Давайте добавим список элементов. Поэтому я просто создам свой список , и это будет просто список python , и мы можем поместить сюда все, что захотим. Поэтому я просто вставлю “один”, “два” и “три”, и все в порядке. Теперь мы можем просто пройтись по списку и поместить туда каждый элемент.

my_list = ["One", "Two", "Three"]

for item in my_list:
	my_listbox.insert(END, item)

Добавление кнопок Tkinter для удаления элементов списка

Теперь, когда мы знаем, как добавлять элементы списка, давайте создадим кнопку Tkinter для удаления элементов.

Если мы нажмем на один из этих элементов, они будут выделены, поэтому давайте создадим кнопку. Мы назовем его my_button, и это будет в корне и упаковать my_button с блокнотом 10.

my_button = Button(root, text="Delete", command=delete)     
my_button.pack(pady=10)

Теперь нам нужно создать функцию delete . Когда что-то выделяется в вашем списке после того, как вы нажали на него, оно становится якорем. Итак, мы хотим удалить ЯКОРЬ.

def delete():
    my_listbox.delete(ANCHOR)
    my_label.config(text=" ")

Полный код для реализации виджета списка Tkinter

from tkinter import *

root=Tk()
root.title("Listbox demo")
root.geometry("400x480")

#Listbox
my_listbox=Listbox(root)
my_listbox.pack(pady=15)

# Add item to listbox

my_listbox.insert(END, "First")  
my_listbox.insert(END, "Second")

my_list = ["One", "Two", "Three"]

for item in my_list:
    my_listbox.insert(END, item)

def delete():
    my_listbox.delete(ANCHOR)
    my_label.config(text=" ")

my_button = Button(root, text="Delete", command=delete)     
my_button.pack(pady=10)

global my_label

my_label=Label(root, text=" ")
my_label.pack(pady=5)

root.mainloop()

Вывод приведенного выше кода выглядит следующим образом:

Элемент списка

Что такое меню опций?

Класс Option Menu – это вспомогательный класс, который создает всплывающее меню и кнопку для его отображения. Этот виджет генерирует выпадающий список со многими значениями параметров.

Давайте создадим простую структуру меню опций.

Создайте свое первое меню опций Tkinter

Чтобы создать меню параметров на основе раскрывающегося меню. Первый шаг для этого-перечислить основные вопросы безопасности. Передайте их в меню параметров и создайте запись для ответа.

Во-первых, мы создадим список вопросов.

Question = ["What is your mother's maiden name?",
                    " Who is your favorite author?",
                    " What was your first pets name? ",
                     "What street did you grow up on? "
] 

Теперь мы должны передать их через переменную tkvarq. Чтобы понять создание переменной tk, первым альтернативным вариантом для прохождения барьера является root и задайте вопросы для этой переменной с помощью set().

Это строковая переменная StringVar , мы передаем в нее вопросы, как показано ниже:

tkvarq = StringVar(root) 
tkvarq.set(questions[0])

Создание объекта Tkinter OptionMenu

Вопросы отображаются путем создания объекта Меню опций , а ответы можно ввести в созданное текстовое поле answer_entry . Это текстовое поле было создано с помощью класса Entry .

question_menu = OptionMenu(root,  tkvarq, *questions)
question_menu.pack()

#Answer entry
answer_entry = Entry(root, width=30)
answer_entry.pack()

Полный код для реализации виджета Tkinter OptionMenu

from tkinter import *
root = Tk()
root.title("Option Menu")
root.geometry('700x500')

# Create the list of questions
# Pass them into an option menu
# Create an entry for the answer
# Create submit button

def print_answers():
       print ("Q: {}    A:  {} ",format(tkvarq.get(),  answer_entry.get()))
       return None 

Question = ["What is your mother's maiden name?",
                    " Who is your favorite author?",
                    " What was your first pets name? ",
                     "What street did you grow up on? "
] 

tkvarq = StringVar(root) 
tkvarq.set(questions[0])
question_menu = OptionMenu(root,  tkvarq, *questions)
question_menu.pack()

#Answer entry
answer_entry = Entry(root, width=30)
answer_entry.pack()

#Submit button
submit_button = Button(root, test='Submit',  command=print_answers)
submit_button.pack()

root.mainloop()

Этот код генерирует меню опций, содержащее вопросы. Вы можете выбрать один вопрос, на который хотите ответить, и написать свой ответ на него в предоставленном текстовом поле.

Пожалуйста, обратите внимание, что этот код не содержит валидаций, то есть он не сообщит вам, является ли введенный ответ правильным или нет.

Вывод приведенного выше кода выглядит следующим образом:

Меню опций

Вывод

Это подходит к концу нашего урока по списку Tkinter и меню опций. Попробуйте приведенные примеры и дайте свой отзыв в разделе комментариев ниже.