Tkinter根窗口类继承,在__init__中添加小部件

时间:2017-08-29 04:35:53

标签: python python-2.7 tkinter

我开始使用Tkinter,尝试创建一个简单的根窗口,窗口上方有一个水平按钮栏,窗口其余部分有一个条目列表。

在逐步调试时,我发现这一行:

            _button_widget = tk.Button(self.button_bar, title=_button_label)

使 init 方法返回主窗口关闭窗口。 旁注:我看不到引发任何异常(使用Visual Code Studio作为IDE)和Python 27.如果删除按钮部分,则会创建并显示窗口。

main.py:

# -*- coding: utf-8 -*-

import display_commander

def main():
    dc = display_commander.DisplayCommander()
    dc.mainloop()

if __name__ == "__main__":
    main()

display_commander.py:

# -*- coding: utf-8 -*-

import Tkinter as tk

class DisplayCommander(tk.Tk, object):

    def __init__(self):
        super(DisplayCommander, self).__init__()

        self.geometry("350x150+150+150")

        # Button bar
        self.button_bar = tk.Frame(self)
        self.button_bar.config(bg="red")
        self.button_bar.pack()

        # Buttons
        self.buttons = []
        for _button_label in ['New Window', 'Delete Window', 'Save Config', 'Load Config']:
            _button_widget = tk.Button(self.button_bar, title=_button_label)
            _button_widget.pack()
            self.buttons.append([_button_label,_button_widget])

        # Window List
        self.window_list = tk.Frame(self)
        self.window_list.config(bg="yellow")
        self.window_list.pack()

1 个答案:

答案 0 :(得分:2)

title参数无法用于按钮,请将其替换为text

_button_widget = tk.Button(self.button_bar, text=_button_label)

(我不确定你想如何在你的代码中使用self.buttons列表,也许你有更好的字典选项?如果你不需要它可以更容易找到/匹配一个小部件排序结构存储。)

self.buttons = {}
    [...]
    self.buttons[_button_label] = _button_widget