关于不显示开始时间,不显示耗时,根据起始时间和速度得到预计结束时间的问题,如何解决?

希望可以不显示开始时间,不显示耗时,根据起始时间和速度得到预计结束时间。(希望得到代码)

    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 函数中,这样每次刷新病人信息时,就会自动进行预计结束时间的计算和显示。这样就可以解决你提出的问题了。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632