Tkinter:单选按钮获取数据集和查找数据集之间匹配和不匹配的功能
Tkinter: radio button getting dataset and a function to find matches and mismatches between datasets
在 Python 中很新。
我正在尝试创建一个具有不同单选按钮的界面。
每个单选按钮都有一个数据集。
单击两个按钮会调用两个不同的功能:查找由单选按钮选择的数据集之间的匹配项和不匹配项。
结果打印在一个小部件中。
我真的无法使用匹配和不匹配的功能。
我可以帮忙知道如何进行吗?
最好的,
**from tkinter import *
from tkinter import messagebox
root = Tk()
root.geometry('400x400')
root.title("matches and mismatches")
def matches():
messagebox.showinfo("function of finding matches")
def mismatches():
messagebox.showinfo("function of finding mismatches")
Datasetone = ["Michel", "John", "Carol", "Bob", "Justine", 'Harry',]
Datasettwo = ["Justine", "John", "Carol", "Bob", "Josh", "Marcello"]
Radiobutton(root, text='Dataset one').pack()
Radiobutton(root, text='Dataset two').pack()
Matches = Button(root, text='Matches', command=matches).pack()
Mismatches = Button(root, text='Mismatches', command=mismatches).pack()
root.mainloop()**
这是如何完成的示例代码。很简单,所以你可以更好地理解它。
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.geometry('400x400')
root.title("matches and mismatches")
var = tk.IntVar()
var2 = tk.IntVar()
data_set_one = ["Michel", "John", "Carol", "Bob", "Justine", "Harry"]
data_set_two = ["Justine", "John", "Carol", "Bob", "Josh", "Marcello"]
dictionary = [{"id": 1, "data_set": data_set_one}, {"id": 2, "data_set": data_set_two}]
def matches(set1, set2):
for item in dictionary:
if item["id"] == set1.get():
first_set = item["data_set"]
elif item["id"] == set2.get():
second_set = item["data_set"]
else:
continue
match = []
for k in first_set:
for v in second_set:
if k == v:
match.append(k + ',')
messagebox.showinfo("Matches", message=match)
def mismatches(set1, set2):
for item in dictionary:
if item["id"] == set1.get():
first_set = item["data_set"]
elif item["id"] == set2.get():
second_set = item["data_set"]
else:
continue
mismatch = []
for k in first_set:
if k not in second_set:
mismatch.append(k + ',')
messagebox.showinfo("Mismatches", message=mismatch)
tk.Radiobutton(root, text='Dataset one', variable=var, value=1).pack()
tk.Radiobutton(root, text='Dataset two', variable=var2, value=2).pack()
Matches = tk.Button(root, text='Matches', command=lambda: matches(var, var2)).pack(pady=5)
Mismatches = tk.Button(root, text='Mismatches', command=lambda: mismatches(var, var2)).pack(pady=5)
root.mainloop()
导入已从 from tkinter import *
更改为 import tkinter as tk
。
创建了两个变量 var
和 var2
,它们是 int
类型。在创建 dictionary
列表后,每个 data_set
都被赋予其 id
。在radiobuttons
中添加了variable
和value
。 (对于每个数据集,tk.IntVar()
和 dictionary
中的值等于 id
。创建了两个函数 mismatches
和 matches
,并且两个函数都有两个 parameters
。
在函数 matches
中,我们检查 dictionary
中的 id
是否等于选定的 radiobutton
,如果是,则变量 first_set
被赋值为 dictionary
对于那个项目。创建空 list match
并在两个 loops
中检查两个列表是否有匹配项,如果有匹配项,则将其添加到列表 match
中。在 messagebox
中设置了标题,消息等于 match
。在 mismatches
函数中,一切都类似于 matches
函数。在 mismatches
中,获得 matches/mismatches 的第二种方式显示在 for loop
.
中
在 Python 中很新。 我正在尝试创建一个具有不同单选按钮的界面。 每个单选按钮都有一个数据集。 单击两个按钮会调用两个不同的功能:查找由单选按钮选择的数据集之间的匹配项和不匹配项。 结果打印在一个小部件中。 我真的无法使用匹配和不匹配的功能。 我可以帮忙知道如何进行吗? 最好的,
**from tkinter import *
from tkinter import messagebox
root = Tk()
root.geometry('400x400')
root.title("matches and mismatches")
def matches():
messagebox.showinfo("function of finding matches")
def mismatches():
messagebox.showinfo("function of finding mismatches")
Datasetone = ["Michel", "John", "Carol", "Bob", "Justine", 'Harry',]
Datasettwo = ["Justine", "John", "Carol", "Bob", "Josh", "Marcello"]
Radiobutton(root, text='Dataset one').pack()
Radiobutton(root, text='Dataset two').pack()
Matches = Button(root, text='Matches', command=matches).pack()
Mismatches = Button(root, text='Mismatches', command=mismatches).pack()
root.mainloop()**
这是如何完成的示例代码。很简单,所以你可以更好地理解它。
import tkinter as tk
from tkinter import messagebox
root = tk.Tk()
root.geometry('400x400')
root.title("matches and mismatches")
var = tk.IntVar()
var2 = tk.IntVar()
data_set_one = ["Michel", "John", "Carol", "Bob", "Justine", "Harry"]
data_set_two = ["Justine", "John", "Carol", "Bob", "Josh", "Marcello"]
dictionary = [{"id": 1, "data_set": data_set_one}, {"id": 2, "data_set": data_set_two}]
def matches(set1, set2):
for item in dictionary:
if item["id"] == set1.get():
first_set = item["data_set"]
elif item["id"] == set2.get():
second_set = item["data_set"]
else:
continue
match = []
for k in first_set:
for v in second_set:
if k == v:
match.append(k + ',')
messagebox.showinfo("Matches", message=match)
def mismatches(set1, set2):
for item in dictionary:
if item["id"] == set1.get():
first_set = item["data_set"]
elif item["id"] == set2.get():
second_set = item["data_set"]
else:
continue
mismatch = []
for k in first_set:
if k not in second_set:
mismatch.append(k + ',')
messagebox.showinfo("Mismatches", message=mismatch)
tk.Radiobutton(root, text='Dataset one', variable=var, value=1).pack()
tk.Radiobutton(root, text='Dataset two', variable=var2, value=2).pack()
Matches = tk.Button(root, text='Matches', command=lambda: matches(var, var2)).pack(pady=5)
Mismatches = tk.Button(root, text='Mismatches', command=lambda: mismatches(var, var2)).pack(pady=5)
root.mainloop()
导入已从 from tkinter import *
更改为 import tkinter as tk
。
创建了两个变量 var
和 var2
,它们是 int
类型。在创建 dictionary
列表后,每个 data_set
都被赋予其 id
。在radiobuttons
中添加了variable
和value
。 (对于每个数据集,tk.IntVar()
和 dictionary
中的值等于 id
。创建了两个函数 mismatches
和 matches
,并且两个函数都有两个 parameters
。
在函数 matches
中,我们检查 dictionary
中的 id
是否等于选定的 radiobutton
,如果是,则变量 first_set
被赋值为 dictionary
对于那个项目。创建空 list match
并在两个 loops
中检查两个列表是否有匹配项,如果有匹配项,则将其添加到列表 match
中。在 messagebox
中设置了标题,消息等于 match
。在 mismatches
函数中,一切都类似于 matches
函数。在 mismatches
中,获得 matches/mismatches 的第二种方式显示在 for loop
.