我有两个脚本。 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函数。
我知道我的代码是错误的,但我对于应该从哪里开始感到困惑。
答案 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)