Я абсолютный новичок в программировании и до Python. Я пытаюсь создать ведущего для организации случайных собраний, чтобы председательствовать на еженедельных собраниях с помощью Tkinter список пользователей на кнопку
Вы можете нажать кнопку выбора хоста, и он будет случайным образом выбрать пользователя из списка, в котором есть все пользователи.
Проблема: я хочу иметь возможность выберите кнопку слева (например, Форум безопасности) и кнопку справа (например, младшие инженеры), а затем отобразите результат, нажав кнопку «Показать кнопку выбора». Он должен сохранить только одну запись и удалить дубликаты. В основном, отображение результата (список имен) выбора нескольких кнопок
from tkinter import *
import random
import sys
import datetime
root = Tk()
root.title('Random User Entry')
root.geometry("700x600")
root.configure(borderwidth="1")
root.configure(relief="sunken")
root.configure(cursor="arrow")
root.configure(highlightbackground="white")
root.configure(highlightcolor="black")
# f = forum, e = engineers
f = IntVar()
e = IntVar()
security = ['Raven Kyle', 'Billy Joel','James Gonzalez','Maria Lopez', 'Justin Bright', 'Ali Baba']
networkcore = ['Tom Reeves', 'Joe Soap', 'John Smith', 'David Jones','Michael Johnson','Chris Lee']
unifiedcomms = ['Mary White', 'John Smith','Mike Brown','Mark Williams','Paul Rodriguez','Daniel Garcia']
# un = username | eng = engineer
junior_eng_un = ['Raven Kyle', 'Billy Joel','James Gonzalez','Maria Lopez', 'Justin Bright', 'Ali Baba','Tom Reeves',
'Joe Soap', 'John Smith']
senior_eng_un = ['David Jones','Michael Johnson','Chris Lee','Mary White', 'John Smith','Mike Brown','Mark Williams',
'Paul Rodriguez','Daniel Garcia']
all_eng_un = ['Raven Kyle', 'Billy Joel','James Gonzalez','Maria Lopez', 'Justin Bright', 'Ali Baba','Tom Reeves',
'Joe Soap', 'John Smith', 'David Jones','Michael Johnson','Chris Lee','Mary White', 'John Smith',
'Mike Brown','Mark Williams','Paul Rodriguez','Daniel Garcia']
def tick():
datenow = datetime.datetime.now()
time_string = datenow.strftime("%d-%m-%Y %H:%M:%S:%p")
clock.config(text=time_string)
clock.after(200,tick)
clock = Label(root, font=("times", 12, "bold"), fg= "white", bg="black")
clock.grid(row=6, columnspan=1, pady=3)
tick()
def all_eng_host():
# all engineering host - random selection of list all_eng_un, enter result in blue textbox
un_in_numbers = len(all_eng_un) - 1
rand_un = random.randint(0, un_in_numbers)
selection_display = Text(master=root, height=17, width=20, bg="Lightblue", font="Helvetica 12 bold")
selection_display.grid(row=5, column=0, padx=10)
selection_display.insert(END, all_eng_un[rand_un])
def all_eng_display():
# Selecting ALL Engineers and display in green box
all_eng_display = Text( master=root, height=20, width=20, bg="Lightgreen", font ="Helvetica 10 bold" )
all_eng_display.grid(row=5,column=1,padx=10)
for i in all_eng_un:
all_eng_display.insert(END, (i + "\n"))
def junior_eng_display():
# Selecting only SA Engineers and display in green box
junior_eng_display = Text( master=root, height=20, width=20, bg="Lightgreen", font ="Helvetica 10 bold" )
junior_eng_display.grid(row=5,column=1,padx=10)
for i in junior_eng_un:
junior_eng_display.insert(END, (i + "\n"))
def senior_eng_display():
# Selecting only UK Engineers and display in green box
senior_eng_display = Text( master=root, height=20, width=20, bg="Lightgreen", font ="Helvetica 10 bold" )
senior_eng_display.grid(row=5,column=1,padx=10)
for i in senior_eng_un:
senior_eng_display.insert(END, (i + "\n"))
def rs_forum_display():
# Selecting only users part of networkcore forum and display in green box
rs_forum_display = Text( master=root, height=20, width=20, bg="Lightgreen", font ="Helvetica 10 bold" )
rs_forum_display.grid(row=5,column=1,padx=10)
for i in networkcore:
rs_forum_display.insert(END, (i + "\n"))
def sec_forum_display():
# Selecting only users part of security forum and display in green box
sec_forum_display = Text( master=root, height=20, width=20, bg="Lightgreen", font ="Helvetica 10 bold" )
sec_forum_display.grid(row=5,column=1,padx=10)
for i in security:
sec_forum_display.insert(END, (i + "\n"))
def uc_forum_display():
# Selecting only users part of unifiedcomms forum and display in green box
uc_forum_display = Text( master=root, height=20, width=20, bg="Lightgreen", font ="Helvetica 10 bold" )
uc_forum_display.grid(row=5,column=1,padx=10)
for i in unifiedcomms:
uc_forum_display.insert(END, (i + "\n"))
def show_selection():
for pa in security:
security_display = Text(master=root, height=20, width=20, bg="Lightgreen", font="Helvetica 10 bold")
security_display.grid(row=5, column=1, padx=10)
security_display.insert(END, pa)
for rs in networkcore:
networkcore_display = Text(master=root, height=20, width=20, bg="Lightgreen", font="Helvetica 10 bold")
networkcore_display.grid(row=5, column=1, padx=10)
networkcore_display.insert(END, (rs + "\n"))
for uc in unifiedcomms:
unifiedcomms_display = Text(master=root, height=20, width=20, bg="Lightgreen", font="Helvetica 10 bold")
unifiedcomms_display.grid(row=5, column=1, padx=10)
unifiedcomms_display.insert(END, (uc + "\n"))
def none_selected():
# Display message if no options selected
greeting1 = " "
security_display = Text(master=root, height=20, width=20, bg="Lightgreen", font="Helvetica 10 bold")
security_display.grid(row=5, column=1, padx=10)
security_display.insert(END, greeting1)
topLabel = Label(root, text="GNC Random Meeting Host Selector", font=("Helvetica", 20))
topLabel.grid(row=0, columnspan=2, pady=5, padx=20)
myradiobutton1 = Radiobutton(root, text="Routing and Switching Forum", font=("Helvetica", 12),
variable=f, value=networkcore, command=rs_forum_display)
myradiobutton1.grid(row=1, column=0, sticky=W)
myradiobutton2 = Radiobutton(root, text="Security Forum", font=("Helvetica", 12),
variable=f, value=security, command=sec_forum_display)
myradiobutton2.grid(row=2, column=0, sticky=W)
myradiobutton3 = Radiobutton(root, text="Unified Comms Forum", font=("Helvetica", 12),
variable=f, value=unifiedcomms, command=uc_forum_display)
myradiobutton3.grid(row=3, column=0, sticky=W)
Radiobutton(root, text="Junior Engineers", font=("Helvetica", 12), variable=e, value=junior_eng_un, command=junior_eng_display).grid(row=1, column=1)
Radiobutton(root, text="Senior Engineers", font=("Helvetica", 12), variable=e, value=senior_eng_un, command=senior_eng_display).grid(row=2, column=1)
Radiobutton(root, text="All Engineers", font=("Helvetica", 12), variable=e, value=all_eng_un, command=all_eng_display).grid(row=3, column=1)
selection_button1 = Button(root, text="Click Here to Display Selection", command=none_selected)
selection_button1.grid(row=4, column=1, pady=10, padx=100)
hostButton = Button(root, text="Click to select next Meeting Host!", font=("Helvetica", 10), command=all_eng_host)
hostButton.grid(row=4, column=0, padx=10)
root.mainloop()
Пример использования