在TKinter中格式化异步选项卡?

时间:2017-06-06 13:57:18

标签: python tkinter

我有一个关于如何格式化tkinter程序的问题,该程序必须处理多个选项卡,这些选项卡以不同的输入异步运行相同的任务?

现在,我有一个包含整个应用程序的类。有没有更好的方法来格式化我的应用程序?

我正在考虑将每个标签放入一个类,这个类将在应用程序类中,但我不确定这是否是最好的方法,如下所示:

class Application():
    def __init__(self):
    #code

    class tab1():
        def __init__(self):
            #code

    class tab2():
        def __init__(self):
            #code

我是GUI编程的新手,所以如果这个问题过于宽泛,我会applog。

1 个答案:

答案 0 :(得分:2)

从我所看到的,你有2个与这个问题相关的问题。

一个是有3个单独的标签/小部件的问题。

这很容易实现。您可以使用1个函数执行此操作,其中包含在3个进程中每个进程之间更改的多个变量,然后使用这些不同的变量调用该函数3次。

def doStuff(var1, var2, var3):
    sumvars = var1 - var2 * var3
    return sumvars

print(doStuff(1,2,3), doStuff(3,2,1), doStuff(2,3,1))

结果:

-5 1 -1

正如您所看到的,这是从同一个定义的函数

运行的3个不同的进程

您可以通过课程完成此任务。您只需要一个将问题中的变量作为参数的类。您可以使用您需要处理的不同变量将该类调用3次。

class DoStuff(object):
    def __init__(self, var1, var2, var3):
        self.var1 = var1
        self.var2 = var2
        self.var3 = var3

    def someMath(self):
        sumvars = self.var1 - self.var2 * self.var3
        return sumvars

object1 = DoStuff(1,2,3)
object2 = DoStuff(3,2,1)
object3 = DoStuff(2,3,1)

print(object1.someMath(), object2.someMath(), object3.someMath())

结果:

-5 1 -1

更新

根据我的研究,您可能需要查看多处理库。

如果你看一下this post有一个类似问题的用户,他们发现使用多处理库,每个进程实际上都有自己的进程ID,并且与我读取的内容并行运行。

以下是multiprocessing

上文档的链接