【问题标题】:Create frame class in Tkinter Gui在 Tkinter Gui 中创建框架类
【发布时间】:2010-08-20 07:21:43
【问题描述】:

我正在开发一个 Gui,我想知道如何创建一个可以实现框架的类。

例如

class WindowContent(Tkinter.?)
    """ This class would create a frame for my program window """


class App(Tkinter.Tk):
    """ main window constructor """
    def __init__(self):
        Tkinter.Tk.__init__(self)
        program_window = WindowContent ?
        self.config(window = window_content) ?

rgds,

【问题讨论】:

    标签: python user-interface class tkinter frame


    【解决方案1】:

    我找到了答案:

    class WindowProgram(Tkinter.Frame)
        """ This class creates a frame for my program window """
        def __init__(self, parent):
            Tkinter.Frame.__init__(self, parent)
    
    class App(Tkinter.Tk):
        """ application constructor """
        def __init__(self):
            Tkinter.Tk.__init__(self)
            self.window_program = Window_Program(self)
    

    【讨论】:

      【解决方案2】:

      为什么你想要一个创建多个框架的类?创建一个创建多个框架的类并不是一个很好的解决方案。你不需要一个单一的课程。

      要么为每个框架创建单独的类,要么只在您的应用中创建方法来创建每个框架。我更喜欢后者,但如果您想要一个可以在多种上下文中使用的框架,有时创建一个类是有意义的。

      当我做一个 GUI 时,我的代码结构是这样的:

      class App(Tkinter.Tk):
          def __init__(self):
              Tkinter.Tk__init__(self)
              self.menubar = self.makeMenubar(...)
              self.frame1 = self.makeFrame1(...)
              self.frame2 = self.makeFrame2(...)
      
              self.configure(menu=self.menubar)
              self.frame1.grid(...)
              self.frame2.grid(...)
      

      这样,每个主要部分都有自己的方法来隐藏小部件创建的细节。当然,您可以让每一帧都是自定义对象,但通常这是不必要的。

      【讨论】:

      • 感谢您的回答。实际上我已经为菜单栏做了一个类(感谢你的帮助),所以我更愿意为框架制作一个类。请问我该怎么做?
      猜你喜欢
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      相关资源
      最近更新 更多