0

tkinter でグリッドを適切に使用する方法を理解するのに苦労しています。2 つのラベルを並べて表示したいだけです。

以下を実行すると、アプリとは別のウィンドウに表示されます。アプリに(グリッドを使用せずに)必要に応じて表示されるボタンがあるため、混乱していますが、グリッド内のラベルを完全に把握できません。

    //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()
4

2 に答える 2

2

のインスタンスを 2 つ作成することはできませんTk。ご覧のとおり、2 つのウィンドウが表示されます。それが唯一の問題ではなく、最も明白な問題です。

これらのラベルを含むウイングへの参照を渡す必要があります。または、ルート ウィンドウをグローバル変数として、またはオブジェクトの属性として保存します。

于 2012-10-29T18:04:45.880 に答える
0

2 つのラベル (label1 と label2) を並べて配置するには:
label1.grid(column=0, row=0)
label2.grid(column=1, row=0)

それはそれを行う必要があります

于 2014-02-19T17:10:14.010 に答える