我有一个Python代码,其中有各种选项,如添加,删除,搜索等…我能不能用Tkinter做一个GUI,当它运行时,它会显示所有选项的按钮,然后当你点击例如“添加”时,它会出现一个输入框,让用户添加一个新值,然后返回到初始页面,等等……在Java语言中,我使用JOptionPane(而不是按钮)很容易做到这一点。我试着在Tkinter中搜索菜单,但不是我想要的(它是出现在页面左上角的那些)……
感谢所有的帮助
发布于 2016-12-03 07:31:35
我想在谷歌上快速搜索一下就能找到这些答案。但不管怎样,这里有几个链接可以帮助你。
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()发布于 2016-12-03 23:34:51
@Manny102030我得到了这个代码。基本上,我想要的是用用户在Tkinter中输入的值在树中插入一个节点。我不知道用户输入的值是否真的被插入了,因为我不知道如何调用我创建的打印Tree的函数(该函数也在BST类中)。我所做的是在mainWindow类中调用BST,然后在BST中调用供用户输入的窗口,当用户单击"Ok“时,它将调用函数insert。然后在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())
https://stackoverflow.com/questions/40942308
复制相似问题