使用Tkinter作为GUI如何显示文本作为菜单的背景?

时间:2015-07-28 07:51:18

标签: python function menu tkinter

我正在使用Tkinter构建我的GUI界面,这实际上是一个菜单。此菜单由名为Dialog_main的函数创建,当用户手动按下菜单中的按钮时,应调用另一个名为Dialog_other的Python函数。

代码如下:

from Tkinter import Frame, Tk, BOTH, Text, Menu, END, Label, SUNKEN, X, TOP, BOTTOM
import tkFileDialog
from ttk import Frame as Frames, Button, Style


class Example(Frame):
    def __init__(self, parent, number):
        Frame.__init__(self, parent)
        self.parent = parent
        self.number = number
        self.initUI()

    def initUI(self):
        self.parent.title("Radiation Simulation")
        self.pack(fill=BOTH, expand=1)
        menubar = Menu(self.parent)
        self.parent.config(menu=menubar)
        file_menu = Menu(menubar)
        file_menu.add_command(label="Open", command=self.hello)
        file_menu.add_command(label="Quit", command=self.quit)
        menubar.add_cascade(label="File", menu=file_menu)

    def hello(self):
        print "Hello, everyone!"

    def statusBarUpdate(self, event=None):
        print "Status Bar Update Called"
        if self.parent.call(event.widget, "index", "active") == 0:
            self.statusBar.display("About This Application")
        else:
            self.statusBar.display("")


class StatusBar(Frame):

    def __init__(self, master):
        Frame.__init__(self, master)
        self.label = Label(self, bd = 1, text="This is the initialization!", 
                           font=10, relief = SUNKEN, anchor = "w")
        self.label.pack(fill=X)

    def display(self, format0, *args):
        self.label.config(text = format0 % args)
        self.label.update_idletasks()

    def clear(self):
        self.label.config(text="")
        self.label.update_idletasks()

def Dialog_main(string):
    root = Tk()
    ex = Example(root, string)
    root.geometry("800x600+600+400")
    root.mainloop()

def Dialog_other()
    # ... Generates some texts. Details omitted...
    return texts


if __name__ == '__main__':
    Dialog_other()
    Dialog_main(texts)

像这样的图像:

enter image description here

将被创建。

正如您所看到的,上面的代码基本上有两个部分:Dialog_main,它创建GUI菜单,Dialog_other,这是一个非常复杂的部分,并生成一些文本。我希望Dialog_other将其输出文本传递给Dialog_main,我希望Dialog_main将这些文本显示为其背景(现在为灰色和空白)。

有人可以帮我吗?

0 个答案:

没有答案