将qdateedit中的变量导入后端脚本

时间:2016-03-11 18:37:50

标签: python pyqt4

我有两个脚本。 On称为Reports,使用pyqt4 designer创建并转换为.py文件。另一个叫做续订。这是一个后端脚本,它包含一个名为run_renewals的函数,该函数在Reports文件中被调用。

以下是Reports.py(GUI文件)

中的相关代码
from PyQt4 import QtCore, QtGui
from Renewals import run_renewals
import pandas as pd
import sys

self.Go = QtGui.QPushButton(Form)
self.Go.clicked.connect(run_renewals)
self.Go.clicked.connect(self.on_Go_clicked)
self.Go.setObjectName(_fromUtf8("Go"))

self.As_of_Date = QtGui.QDateEdit(Form)
self.As_of_Date.setObjectName(_fromUtf8("As_of_Date"))


@QtCore.pyqtSlot()
def on_Go_clicked(self):
    AOD = self.As_of_Date.date()
    End_Date = AOD.toPyDate()

以下是Renewals.py文件的快照

import pandas as pd
import datetime as dt


def run_renewals():

    End_Date = pd.to_datetime(End_Date)

所以基本上在Reports文件中,我有一个名为Go的按钮。我要做的就是当它被按下时,它需要as_of_date QdateEdit输入,将它带入Renewals文件并在Renewals文件中运行run_renewals函数。

我知道我的代码是错误的,但我对于应该从哪里开始感到困惑。

1 个答案:

答案 0 :(得分:1)

您的示例代码似乎已经完成了您想要的大部分工作。主要的变化是向run_renewals添加一个参数:

import pandas as pd
import datetime as dt

def run_renewals(end_date):
    # do stuff with end_date ...

请注意,您无需在此使用pd.to_datetime,因为end_date已经是datetime个对象。

有了这个,GUI文件看起来应该是这样的:

from PyQt4 import QtCore, QtGui
from Renewals import run_renewals
import pandas as pd
import sys

self.Go = QtGui.QPushButton(Form)
self.Go.clicked.connect(self.on_Go_clicked)

self.As_of_Date = QtGui.QDateEdit(Form)

def on_Go_clicked(self):
    # this converts a QDate to a datetime object
    end_date = self.As_of_Date.date().toPyDate()
    run_renewals(end_date)