当前位置: 首页 > 知识库问答 >
问题:

Tkinter:整个应用程序的一个大类

柴霖
2023-03-14

下午好,StackOverflow社区,

我是一个第一次的GUI编码器寻求建议。例如,我正忙着攻读物理化学硕士学位。

我有一个简单的问题:将我的全部代码封装到一个类中是否被认为是糟糕的做法?我曾尝试将代码分成几个类,但在处理多个类时,我似乎无法正确地使用初始化魔术方法。作为参考,我附上了我自己的init。也许你能帮助我理解,我怎么可能把所有这些划分成不同的类,这些类可以分为不同的模块。

谢谢

class ApplicationUI(tk.Tk):
    def __init__(self):
        """
        Initialises the GUI and parent.
        """
        tk.Tk.__init__(self)
        self.create_canvas()
        self.create_menus()
        self.create_main_buttons()

        self.data = {}
        self.call_counter = 0

        self.file_opts = {}
        self.file_opts['filetypes'] = [('Text Files', '.txt'),('CSV Files', '.csv'),('All Files', '.*')]
        self.file_opts['initialdir'] = 'C:\\Users\xxx\Documents'
        self.file_opts['title'] = 'File'

app = ApplicationUI()
app.mainloop()

共有1个答案

欧阳正卿
2023-03-14

正如评论中所提到的,这是一个主观问题,或者是权衡利弊的问题。

无论如何,有一个关于干净代码的不错的pdf,它讨论了一些方法和经验法则。还有一整章(10)是关于课堂的。所以也许这是一个开始感受的好地方。

 类似资料:
  • 本节使用 Tkinter 编写第一个 GUI 程序,通过对程序代码的详细解读来讲解 Tkinter 的编码逻辑,以及使用 Tkinter 过程中的一些注意事项。 注意:程序中涉及的其他知识点(比如控件参数等)会在后续内容做详细介绍。 一个最简单的 Tkinter 程序至少应包含以下四个部分: 导入 tkinter 模块 创建主窗口,也称 root 窗口(即根窗口) 添加人机交互控件,同时编写相应的

  • 我正在尝试用tkinter构建一个navigator应用程序,并且对于制作GUI和一般使用tkinter非常陌生。当整个窗口调整大小时,我似乎不知道如何很好地调整小部件的大小。当前调整大小的工作方式如下图所示。 顶部的描述是一个tkinter消息小部件,中间的导航树是一个检查表,两个按钮是常规按钮,按钮下面的文本是一个标签对象。我把这些放在tkinter根中。grid()方法,并根据需要使用ipa

  • 问题内容: 我确信你们中有人注意到,如果您有Acrobat Reader(或其他PDF阅读器),并在Firefox中打开一个PDF,您会看到它嵌入在您的标签中。有什么方法可以将应用程序嵌入JFrame中? 问题答案: 这是一个相当棘手的问题。通常,诸如Adobe Reader之类的本机应用程序不提供可以嵌入到swing应用程序中的组件。但是在Windows中,有COM / OLE方法可以将应用程序

  • 我想更改整个应用程序组件(文本视图、编辑文本、按钮等)的字体。我发现我可以为应用程序设置样式,但在这里我无法将字体从资产文件夹放入自定义样式xml。我必须将我的自定义TTF字体从资产文件夹放到样式xml中的typeface元素中。我无法将单空间字体更改为自定义字体。我的风格是

  • 我在我的项目中添加了一个外部库,由于它的值文件中有一个@string/app_name标记,所以它更改了我的整个应用程序名称。我不能编辑这个值文件。而且android studio更喜欢使用外部库app_name资源。我该怎么修好它? 解决方案: 正如Nicholas Tee所说:

  • null 这是我第一次尝试将Firebase集成到我的一个项目中,因此一些关于实现这项任务的指导将是非常有用的。 谢了!

  • 我有一个java应用程序,它在运行时会产生另一个JVM。然而,我想使用jpack打包我的应用程序,它运行得很好。但是在运行时,当我的应用程序尝试使用调用下一个JVM时 我必须知道,应用程序是使用定制的JVM启动的,并且没有像“java”这样的命令。所以我得到的错误是这个java。无法执行getAbsolutePath()。 如果没有java可执行文件,我的应用程序如何在单独的进程中运行另一个jar

  • 我正在构建一个应用程序,它有任意数量的“微社区”。目前,一个用户只能属于一个,所以当他们最初注册时,他们输入一个秘密代码,将他们与相关社区联系起来。 将这些“微社区”(由未来在应用程序上玩一个空间的客户拥有)分离成单独的Firebase项目或将所有数据保存在一起是明智的吗?