2012-10-29 32 views
0

我在計算如何正確使用tkinter網格時遇到了一些麻煩。我只想讓兩個標籤並排出現。在tkinter中使用網格的標籤佈局

當我執行以下操作時,它們會顯示在與我的應用程序不同的窗口中。我很困惑,因爲我的應用程序按鈕上出現了我想要的按鈕(不使用網格),但我無法完全弄清楚網格中的標籤。在應用程序的不同部分將創建

//this is just a snippet from a function 
    self.root = tk.Tk() 
    tk.Label(master=self.root, text=directory).grid(row=0,column=0) 
    tk.Label(master=self.root, text=directory).grid(row=0,column=1) 

根窗口,因此,所有我在這裏做的是使一個又一個(我認爲)。我只想讓標籤出現在已創建的窗口中,但我無法弄清楚我應該引用它的內容。 這是在一個單獨的文件,其中包括與代碼上面的文件

from Tkinter import * 
import tkinter as tk 
import widgetActions 
import shutil 

class mywidgets(widgetActions.Actions): 

def __init__(self,root): 
    frame = tk.Frame(root) 
    self.makeMenuBar(frame) 
    frame.pack() 
    frame.config(width=400) 
    self.body() 
    return 


def makeMenuBar(self,frame): 
    menubar = Frame(frame,relief=RAISED,borderwidth=1) 
    menubar.pack() 


    mb_file = Menubutton(menubar,text='file') 
    mb_file.pack(side=LEFT) 
    mb_file.menu = Menu(mb_file) 


    mb_file.menu.add_command(label='open', command = self.openfile) 
    mb_file.menu.add_command(label='close', command = menubar.quit) 

    mb_file['menu'] = mb_file.menu 
    return 

def body(self): 
    self.filename() 


def main(): 
root = tk.Tk() 
k=mywidgets(root) 
root.title('menu bar') 
root.mainloop() 
main() 

回答

2

不能創建的Tk兩個實例。正如你所觀察到的,你會得到兩個窗口。這不是唯一的問題,只是最明顯的問題。

您需要傳遞對包含這些標籤的winget的引用。或者,將根窗口存儲爲全局變量或作爲對象的屬性。

+0

原諒我,我是新一般要使用TKinter和Python,但我我不完全確定我應該參考什麼。我上面更新了我的代碼。我應該引用master = frame嗎? – user1104854

0

要定位並排即label1和label2 2個標籤的一面:
label1.grid(column=0, row=0)
label2.grid(column=1, row=0)

應該這樣做