簡體   English   中英

標簽布局在tkinter中使用網格

[英]label layout using grid in 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()

您無法創建兩個Tk實例。 正如您所觀察到的,您將獲得兩個窗口。 這不是唯一的問題,只是最明顯的問題。

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

要並排放置2個標簽,即label1和label2:
label1.grid(column=0, row=0)
label2.grid(column=1, row=0)

應該這樣做

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM