首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有选项的Python TKinter菜单

带有选项的Python TKinter菜单
EN

Stack Overflow用户
提问于 2016-12-03 07:18:31
回答 2查看 846关注 0票数 0

我有一个Python代码,其中有各种选项,如添加,删除,搜索等…我能不能用Tkinter做一个GUI,当它运行时,它会显示所有选项的按钮,然后当你点击例如“添加”时,它会出现一个输入框,让用户添加一个新值,然后返回到初始页面,等等……在Java语言中,我使用JOptionPane(而不是按钮)很容易做到这一点。我试着在Tkinter中搜索菜单,但不是我想要的(它是出现在页面左上角的那些)……

感谢所有的帮助

EN

回答 2

Stack Overflow用户

发布于 2016-12-03 07:31:35

我想在谷歌上快速搜索一下就能找到这些答案。但不管怎样,这里有几个链接可以帮助你。

Playlist of TKinter tutorial for future use (Object Oriented)

(他的youtube频道和他的网站在学习基础和高级Python(游戏、机器学习、网站等)方面令人惊叹)

Add buttons

Input (也是一个很棒的网站)

Popup

示例代码

就像我说的,你可以在谷歌上快速搜索并找到答案。

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 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())

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40942308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档