2016-12-02 7 views
0

Ich habe einen Code in Python, der verschiedene Optionen wie Hinzufügen, Entfernen, Suchen etc ... Kann ich eine GUI mit Tkinter, die im Grunde, wenn es läuft, zeigt es Schaltflächen mit allen Optionen Wenn Sie zum Beispiel auf "Hinzufügen" klicken, erscheint ein Eingabefeld für den Benutzer, um einen neuen Wert hinzuzufügen, dann geht es zurück zur Anfangsseite etc ... Ich mache das sehr einfach in Java mit JOptionPane (nicht mit Tasten tho) .. ich habe versucht, für Menüs in Tkinter gesucht, aber nicht die, die ich (das diejenigen, die auf der oben links auf der Seite angezeigt werden) will ...Python TKinter Menü mit Optionen

all Hilfe

+0

ja, das ist alles möglich. –

+0

Wie? irgendwelche Verbindungen? –

+0

"Wie" ist viel zu breit für Stackoverflow. Sie müssen mit einem tkinter-Tutorial beginnen. –

Antwort

0

Schätze ich denke, eine schnelle google Suche hätte diese Antworten gefunden. Aber trotzdem hier sind ein paar Links, die dir helfen.

Playlist of TKinter tutorial for future use (Object Oriented)
(Sein Youtube-Kanal und seine Website sind erstaunlich für die grundlegende Lernen und erweiterte Python (Spiele, Machine Learning, Website etc.)

Add buttons

Input (auch große Website)

Popup

Beispielcode

Wie gesagt, Sie könnten diese schnell googlen und eine Antwort finden.

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

Eigentlich ist keiner von denen nützlich. Ich sagte eindeutig, dass ich auf Knöpfe klicken wollte, und als ich klickte, würde es ein anderes Fenster öffnen, um Handlungen zu tun. –

+0

Ich redigierte meine ursprüngliche Antwort, um Beispielcode zu zeigen. Bei stackoverflow wird niemand Ihre Arbeit für Sie erledigen, wir geben nur Hilfe, nachdem Sie Ihr Bestes versucht haben. – Manny102030

0

@ Manny102030 habe ich diesen Code. Grundsätzlich möchte ich einen Knoten in einem Tree mit dem Wert einfügen, den der Benutzer im Tkinter eingibt. Ich weiß nicht, ob der Wert, den der Benutzer eingibt, tatsächlich eingefügt wird, weil ich mir nicht vorstellen kann, wie ich die Funktion, die ich erstellt habe, um den Baum zu drucken (die Funktion ist auch in der Klasse BST). Was ich getan habe, war das BST in der mainWindow Klasse aufrufen, dann in der BST ich das Fenster für den Benutzer zur Eingabe aufrufen, und wenn er auf "Ok" klickt ruft es die Funktion einfügen. Dann übergebe ich in der Einfügung den Wert vom Benutzer, um den Knoten zu verursachen, um in den Baum zu setzen ... Irgendwelche Verbesserungen/irgendwelche Ideen, wie man die Funktion aufruft, um den Baum zu drucken? 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())