带选项的Python TKinter菜单

时间:2016-12-02 23:18:31

标签: python python-3.x user-interface tkinter

我在Python中有一个代码,有各种选项,如添加,删除,搜索等... 我可以使用Tkinter制作一个GUI,基本上它在运行时会显示带有所有选项的按钮,然后当你点击例如" Add"它似乎是一个输入框,供用户添加一个新值,然后返回到初始页面等...我在Java中使用JOptionPane(而不是使用按钮)很容易做到这一点..我尝试在Tkinter中搜索菜单但是不是我想要的(它是出现在页面左上角的那些)......

感谢所有帮助

2 个答案:

答案 0 :(得分:0)

我认为快速谷歌搜索会找到这些答案。但无论如何这里有一些帮助你的链接。

Playlist of TKinter tutorial for future use (Object Oriented)
(他的youtube频道和他的网站对于学习基础和高级Python(游戏,机器学习,网站等)非常了不起。

Add buttons

Input(也是很棒的网站)

Popup

示例代码

就像我说的那样,你可以快速谷歌这些并找到答案。

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中调用窗口供用户输入,当他点击&#34; Ok&#34;它调用函数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())