希望可以不显示开始时间,不显示耗时,根据起始时间和速度得到预计结束时间。(希望得到代码)
def refresh_time(self):
time1=datetime.datetime.now()
temp=self.startTime.text()
temp2=temp[5:]
temp3=datetime.datetime.strptime(temp2, "%Y-%m-%d %H:%M:%S")
hour1=time1.hour-temp3.hour
minute1 = time1.minute - temp3.minute
second1=time1.second-temp3.second
if minute1<0:
hour1 =hour1 -1
minute1 = minute1*(-1)
if second1 < 0:
minute1 =minute1-1
second1 = second1 * (-1)
self.haoshi.setText(str(hour1)+"时"+str(minute1)+"分"+str(second1)+"秒")
def refresh_patient_info(self,data):
print("-------")
print(data)
if len(data) >0 :
self.num_bed.setText(data[0][1])
self.startTime.setText("开始时间:"+str(data[0][5]))
self.disu.setText(str(data[0][2])+'d/min')
将标签设置为不显示就好了,修改标签的显示位置为(0,0,0,0)
耗时放在变量里,不要放在控件上
参考GPT和自己的思路:
根据您提供的代码,我注意到 refresh_time
函数可以计算出从开始时间到当前时间的耗时,并将其以时、分、秒的形式展示出来。如果您想要根据起始时间和速度计算预计结束时间,则可以在 refresh_patient_info
函数中增加相关代码,如下所示:
def refresh_patient_info(self,data):
print("-------")
print(data)
if len(data) >0 :
self.num_bed.setText(data[0][1])
self.startTime.setText("开始时间:"+str(data[0][5]))
self.disu.setText(str(data[0][2])+'d/min')
# 计算预计结束时间
start_time = datetime.datetime.strptime(data[0][5], "%Y-%m-%d %H:%M:%S")
speed = data[0][2] # 单位:d/min
duration = 24 / speed # 单位:小时/d
end_time = start_time + datetime.timedelta(hours=duration)
# 在界面上展示预计结束时间
self.endTime.setText("预计结束时间:" + end_time.strftime("%Y-%m-%d %H:%M:%S"))
其中,start_time
表示开始时间,speed
表示速度(单位为 d/min),duration
表示持续时间(单位为小时),end_time
表示预计结束时间。最后,将预计结束时间展示在界面上,例如使用一个名为 endTime
的 QLabel 控件。当更新数据时,调用 refresh_patient_info
函数即可。
参考GPT和自己的思路:
根据你提供的代码,我看到你已经实现了根据起始时间和速度计算预计结束时间的功能。现在只需要对代码进行一些微调,就可以解决不显示开始时间和耗时的问题。具体的修改如下:
def refresh_time(self):
time1=datetime.datetime.now()
temp=self.startTime.text()
temp2=temp[5:]
temp3=datetime.datetime.strptime(temp2, "%Y-%m-%d %H:%M:%S")
hour1=time1.hour-temp3.hour
minute1 = time1.minute - temp3.minute
second1=time1.second-temp3.second
if minute1<0:
hour1 =hour1 -1
minute1 = minute1*(-1)
if second1 < 0:
minute1 =minute1-1
second1 = second1 * (-1)
end_time = temp3 + datetime.timedelta(minutes=(hour1*60+minute1), seconds=second1)
self.endTime.setText("预计结束时间:" + end_time.strftime("%Y-%m-%d %H:%M:%S"))
def refresh_patient_info(self,data):
print("-------")
print(data)
if len(data) >0 :
self.num_bed.setText(data[0][1])
self.startTime.setText("开始时间:"+str(data[0][5]))
self.disu.setText(str(data[0][2])+'d/min')
self.refresh_time() # 进行预计结束时间的计算并显示
在 refresh_time
函数中,我们新增了一段计算预计结束时间的代码,并将其显示在 endTime
标签中。同时,我们将 refresh_time
放到了 refresh_patient_info
函数中,这样每次刷新病人信息时,就会自动进行预计结束时间的计算和显示。这样就可以解决你提出的问题了。