如果我单击pushButton_1
,它将正确显示,然后单击pushButton_2
。
这两个功能同时运行并且相互重叠。
self.pushButton_1.clicked.connect(self.fun)
def fun(self):
print("1...")
#for grabbing live data from excelsheet
timer = threading.Timer(5.0, self.fun)
timer.start()
#reading from sheet1; ignore sheet_name=2
ex_data = pd.read_excel('bank2.xlsm',sheet_name=2,skiprows=5, nrows=18,
usecols = 'D:V')
df = pd.DataFrame(ex_data)
df = df.replace(np.nan, '', regex=True)
self.tableWidget.setColumnCount(len(df.columns))
self.tableWidget.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range(len(df.columns)):
self.tableWidget.setItem(i,j,QTableWidgetItem(str(df.iloc[i,
j])))
self.tableWidget.resizeColumnsToContents()
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.pushButton_2.clicked.connect(self.fun2)
def fun2(self):
print("2...")
timer = threading.Timer(5.0, self.fun2)
timer.start()
ex_data = pd.read_excel('bank2.xlsm',sheet_name=3,skiprows=5, nrows=18,
usecols = 'D:V')
df = pd.DataFrame(ex_data)
df = df.replace(np.nan, '', regex=True)
self.tableWidget.setColumnCount(len(df.columns))
self.tableWidget.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range(len(df.columns)):
self.tableWidget.setItem(i,j,QTableWidgetItem(str(df.iloc[i,
j])))
self.tableWidget.resizeColumnsToContents()
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
因此,我正在PyQt5项目中工作,当按下pushButton_1
时,它应该显示来自excel文件的实时数据,为此我必须实施Timer
进行实时更新。
第二个按钮相同。
每当调用fun
时,我都希望fun2
停止执行。反之亦然