如何在另一个py-fi中存储用户GUI条目

2024-09-28 23:47:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经将我的GUI代码(ui.py)与根据用户的GUI条目/选择进行计算的代码(calcs.py)分开。基本上,你输入数字和选择,然后点击开始,开始按钮应该开始计算和打印的东西。以下是我的代码相关部分的解释:

  1. 点击按钮后,以下方法开始:

    import calcs
    class Application:
        def sendGUIinput(self):
            self.entry1   = self.coeff1.get() #get entry 1
            self.entry2   = self.coeff2.get() #get entry 2
            self.entry3   = self.coeff3.get() #get entry 3
            calcs.CreateData(self.entry1, self.entry2) #pass entries 1 and 2 to calcs.py for calculations
    

请注意,app = Application(root)

  1. calcs.CreateData执行一些计算,然后为其他一些计算调用另一个类:

     class CreateData:
         def __init__(self, entry1, entry2):
             """some calculations here produce self.someNewVar1 and self.someNewVar2"""
             CreateData2(self.someNewVar1, self.someNewVar2)
    
  2. 这就是我遇到这个问题的地方。calcs.CreateData2calcs.CreateData获取2个变量,但它也需要entry3来自{}。我不想将所有条目传递给CreateData,然后再从CreateData传递到{}。我要做的是,在calcs.py中拥有一个来自ui.py的条目池,这样在我按下按钮之后,calcs.py中的类就可以工作而不需要ui.py。如果你能帮我这件事,我将不胜感激。提前谢谢你。

注意:我定义calcs.CreateData2

^{3}$

所以它接受2个参数而不是self,但也需要entry3用户界面在


Tags: 代码pyselfuiget条目gui按钮
1条回答
网友
1楼 · 发布于 2024-09-28 23:47:03

所以我要说,我基本上同意@Cu3PO42。如果有大量的条目可以是任意大小的,那么使用^{}关键字将其解包,然后确保您的类可以处理任意大小的计算。在

我认为,如果纯粹是规模问题,这是最好的解决办法。在

如果需要更详细的信息,您需要将数据集中起来存储,或者其他一些我们不确定的复杂性。您可以使用中间层DB,并创建查询DB的类。SQL或{}是最有可能的候选对象,具体取决于具体情况。如果您不想深入研究使用多种语言的程序(尽管PythonSQLNoSQL很好地配合使用),您可以使用表格文件(csv)、标准存储数据格式(json)或序列化的Python对象(pickle)。所有这些都已内置到Python中。在

相关问题 更多 >