我在Python中有一个代码,有各种选项,如添加,删除,搜索等... 我可以使用Tkinter制作一个GUI,基本上它在运行时会显示带有所有选项的按钮,然后当你点击例如" Add"它似乎是一个输入框,供用户添加一个新值,然后返回到初始页面等...我在Java中使用JOptionPane(而不是使用按钮)很容易做到这一点..我尝试在Tkinter中搜索菜单但是不是我想要的(它是出现在页面左上角的那些)......
感谢所有帮助
答案 0 :(得分:0)
我认为快速谷歌搜索会找到这些答案。但无论如何这里有一些帮助你的链接。
Playlist of TKinter tutorial for future use (Object Oriented)
(他的youtube频道和他的网站对于学习基础和高级Python(游戏,机器学习,网站等)非常了不起。
Input(也是很棒的网站)
就像我说的那样,你可以快速谷歌这些并找到答案。
from tkinter import *
import sys
class popupWindow(object):
def __init__(self,master):
top=self.top=Toplevel(master)
self.l=Label(top,text="Add a new value")
self.l.pack()
self.e=Entry(top)
self.e.pack()
self.b=Button(top,text='Ok',command=self.cleanup)
self.b.pack()
def cleanup(self):
self.value=self.e.get()
self.top.destroy()
class mainWindow(object):
def __init__(self,master):
self.master=master
self.b=Button(master,text="Add!",command=self.popup)
self.b.pack()
# Check python shell for the output
self.b2=Button(master,text="Print Value From Input",command=lambda: sys.stdout.write(self.entryValue()+'\n'))
self.b2.pack()
def popup(self):
self.w=popupWindow(self.master)
self.master.wait_window(self.w.top)
def entryValue(self):
return self.w.value
root = Tk()
m = mainWindow(root)
root.mainloop()
答案 1 :(得分:0)
@ Manny102030
我有这个代码。基本上我想要的是在树中插入一个节点,其中包含用户在Tkinter中输入的值。我不知道用户输入的值是否实际被插入,因为我无法想象如何调用我创建的函数来打印树(该函数也在BST类中)。
我所做的是在mainWindow类中调用BST,然后在BST中调用窗口供用户输入,当他点击" Ok"它调用函数insert。然后在插入中我传递来自用户的值以创建要放入树中的节点...有关如何调用函数来打印树的任何改进/任何想法?
class mainWindow(object):
def __init__(self,master):
self.master = master
self.b=Button(master,text="Add value",command=self.popupAdd)
self.b.pack()
def popupAdd(self):
self.w=BST(self.master)
self.master.wait_window(self.w.top)
class BST(object):
def __init__(self,master):
self._root = None
top=self.top=Toplevel(master)
self.l=Label(top,text="Add a new value")
self.l.pack()
self.e=Entry(top)
self.e.pack()
self.b=Button(top,text='Ok',command=self.insert)
self.b.pack()
def insert(self):
novo = No(self.e.get()) #insert value in Node
if self._root == None:
self._root = novo
else:
pai = self._root
temp = self._root
while temp != None:
if valor > temp.getValor():
pai = temp
temp = temp.getRight()
elif (valor < temp.getValor()):
pai = temp
temp = temp.getLeft()
else:
temp = None
print("Value Already exists")
if valor > pai.getValor():
pai.setRight(novo)
elif valor < pai.getValor():
pai.setLeft(novo)
self.top.destroy()
def printTree(self, root):
if root != None:
self.printTree(root.getLeft())
print(" " + str(root.getValor()), end="")
self.printTree(root.getRight())