2017-02-17 7 views
0

Es fühlt sich an, als sollte es einfach sein, aber nicht so viel wie ich hoffen würde. Ich möchte nur einen Knopf in einen Rahmen setzen. Mein Code färbt den Rahmen, so dass ich den Knopf validieren kann, wo ich ihn hinstellen möchte und wie Sie sehen können, unten tut mein Code nicht das, was ich will/denke. Ich erwarte, dass mein Code den Radioknopf in den gelben Rahmen einfügt - nicht darunter.python tkinter button im frame

from tkinter import * 

class apiMain: 

    def main(self): 
     master=Tk() 

     topframe = Frame(master, bg="Lemon chiffon", width=500, height=50).pack(side = TOP)   

     v = IntVar() 
     crbutton = Radiobutton(topframe, text = "change request", variable = v, value = 'cr') 
     crbutton.pack(side = LEFT, padx = 10)   

     mainloop() 

enter image description here

Antwort

2

Wenn Sie topframe wie folgt vergeben:

topframe = Frame(master, bg="Lemon chiffon", width=500, height=50).pack(side = TOP) 

Sie sind topframe = None im Wesentlichen zu schreiben, weil pack() immer None zurückgibt. Aus diesem Grund weisen Sie den Master Ihres Optionsfelds None zu, das standardmäßig auf das Hauptfenster verweist. Teilen Sie Ihren Code auf, so dass topframe das tatsächliche Frame-Objekt referenziert:

topframe = Frame(master, bg="Lemon chiffon", width=500, height=50) 
topframe.pack(side = TOP) 
+0

Vielen Dank für Ihre Hilfe. – efultz