1

我在使用 Python 和 ttk 时遇到了一些困难。我构建了一个可以正常工作的 UI,但看起来有点混乱。我想添加一个框架,以便我可以添加一些填充并启用调整大小等,但现在没有显示任何小部件。我的代码如下。

以前我只是parent作为父级传递给小部件,这确实有效。我一直在学习一些教程,虽然我确信这很简单,但我看不到任何明显的错误。

class Application:

    def __init__(self, parent):
        self.parent = parent

        self.content = ttk.Frame(parent, padding=(3,3,12,12))
        self.content.columnconfigure(1, weight=1)
        self.content.rowconfigure(1, weight=1)

        self.row1()


    def row1(self):
        self.enButton = ttk.Button(self.content, text="Enable", command=self.enableCmd)
        self.disButton = ttk.Button(self.content, text="Disable", command=self.disableCmd)
        self.enButton.grid(column=1, row=1)
        self.disButton.grid(column=2, row=1)
        self.disButton.state(['disabled'])

    def enableCmd(self):
        self.disButton.state(['!disabled'])
        self.enButton.state(['disabled'])
        self.ser.write("pe001\n")



if __name__ == '__main__':
    root = Tk()
    root.title("PC Control Interface")
    img = Image("photo", file="appicon.gif")
    root.tk.call('wm','iconphoto',root._w,img)

    app = Application(root)

    root.mainloop()
4

1 回答 1

0

您只需要将内容框架打包或网格化到其父级中。

此外,如果您发布的代码可以由其他人运行,而无需弄清楚还要添加什么,这也会有所帮助。这是我最终得到的代码:

import Tkinter as tk
import ttk

#from PIL import Image

class Application:

    def __init__(self, parent):
        self.parent = parent

        self.content = ttk.Frame(parent, padding=(3,3,12,12))
        self.content.pack()
        self.content.columnconfigure(1, weight=1)
        self.content.rowconfigure(1, weight=1)

        self.row1()


    def row1(self):
        self.enButton = ttk.Button(self.content, text="Enable", command=self.enableCmd)
        self.disButton = ttk.Button(self.content, text="Disable", command=self.disableCmd)
        self.enButton.grid(column=1, row=1)
        self.disButton.grid(column=2, row=1)
        self.disButton.state(['disabled'])

    def enableCmd(self):
        self.disButton.state(['!disabled'])
        self.enButton.state(['disabled'])
        # self.ser.write("pe001\n")

    def disableCmd(self):
        self.disButton.state(['disabled'])
        self.enButton.state(['!disabled'])


if __name__ == '__main__':
    root = tk.Tk()
    root.title("PC Control Interface")
    #img = Image("photo", file="T.ico") # "appicon.gif"
    #root.tk.call('wm','iconphoto',root._w,img)

    app = Application(root)

    root.mainloop()
于 2013-10-04T12:04:31.130 回答