使用TKInter构建应用程序,需要一些帮助

弗拉代塔

基本上,我已经制作了一个供个人使用的与在线游戏社区有关的GUI应用程序,并且我目前还很坚决。除了一件事情,它按预期工作。我需要它能够跟踪多个“激活”并启动单独的计时器,但也要跟踪以前的计时器,因此它可以在最后总计。例如,如果我激活“服务1”,则它当前会启动一个计时器,但是当我停用它并再次激活它时,它将忽略初始计时器,而只是启动一个新计时器。我如何做到这一点,以便将两个计时器加在一起以打印出“花费的总时间”。

这是与我的查询有关的代码

def time_convert3(sec):
    global PALenght
    mins = sec // 60
    sec = round(sec % 60)
    hours = mins // 60
    mins = mins % 60
    SIDLenght = ("{0}H:{1}M:{2}S".format(int(hours),int(mins),sec))
    print(PALenght)

def selectPA():
    global PAStart
    global PALenght
    global PACount
    if var.get() == 1:
        PAStart = time.time()
        print(PAStart)
        PACount = PACount + 1
        root.after(10, lambda: Label(root, text= 'PA Activations: ' + str(PACount), bg='#1aa3ff', fg='Black' ).place(relx=0.1, rely=0.85, relwidth=0.3, relheight=0.05))
        root.after(1000, lambda: portA.place(relx=0.4, rely=0.55, relwidth=0.2, relheight=0.05))
        root.after(3000, lambda: portA.place_forget())
    elif var.get() == 0:
        PAEnd = time.time()
        PATotal = PAEnd - PAStart
        time_convert3(PATotal)
        root.after(1000, lambda: portB.place(relx=0.4, rely=0.55, relwidth=0.2, relheight=0.05))
        root.after(3000, lambda: portB.place_forget())

var = IntVar()
PACheck = Checkbutton(root, text="Activate/Deactivate PA ", variable = var,bg='#1aa3ff', fg='Black', command = selectPA).place(relx=0.13, rely=0.55, relwidth=0.2, relheight=0.05)
简单

开始时,您应该设置

PATotal = 0  

然后添加新的时间总计

PATotal += (PAEnd - PAStart)

最小的工作实例

import tkinter as tk
import time

# --- functions ---

def func():
    global total
    global time_start

    if cb_var.get():
        time_start = time.time()
    else:
        total += (time.time() - time_start)
        label['text'] = 'Total: {:.2f}s'.format(total)

# --- main ---

total = 0
time_start = 0

root = tk.Tk()

cb_var = tk.BooleanVar()

label = tk.Label(root, text='Total: 0.00s')
label.pack()

cb = tk.Checkbutton(root, text='Running ...', variable=cb_var, command=func)
cb.pack()

root.mainloop()

或者在开始时创建列表

all_times = []

然后追加PAEnd - PAStart到此列表

all_times.append(PAEnd - PAStart)

您可以汇总列表中的所有值。

PATotal = sum(all_times)

最小的工作实例

import tkinter as tk
import time

# --- functions ---

def func():
    global total
    global time_start

    if cb_var.get():
        time_start = time.time()
    else:
        all_times.append(time.time() - time_start)
        label_times['text'] += '\n{:.2f}'.format(all_times[-1])

        total = sum(all_times)
        label_total['text'] = 'Total: {:.2f}s'.format(total)

# --- main ---

all_times = []
total = 0
time_start = 0

root = tk.Tk()

cb_var = tk.BooleanVar()

label_times = tk.Label(root, text='Times')
label_times.pack()

label_total = tk.Label(root, text='Total: 0.00s')
label_total.pack()

cb = tk.Checkbutton(root, text='Running ...', variable=cb_var, command=func)
cb.pack()

root.mainloop()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

需要一些有关如何基于golang实现Restfull API应用程序的帮助

在考虑使用Laravel和Ionic Framework构建应用程序时-一些初始问题

需要一些帮助来构建带有bazel的自定义terraform提供程序

需要一些帮助来构建顶部菜单

使用 Jenkins 构建 React 应用程序的问题,由于文件加载器丢失了一些文件

“错误,预期表达式为int”,并且在构建我的C应用程序时需要一些建议

我编译的任何Android应用程序都需要一些权限,即使是Hello World应用程序

需要一些想法在React Native应用程序中实现异步存储以保持用户登录应用程序

应用程序或活动需要花费一些时间才能加载

在Azure上部署应用程序,需要一些指针

我需要一些关于 Web API 的指导 - MVC 应用程序

在Java中使用.split需要一些简单的帮助

使用打印语句需要一些帮助

grep需要一些帮助

在 RegEx 上需要一些帮助

需要一些登录表单的帮助

需要一些胜利图表帮助

需要帮助合并一些矩形

需要一些帮助以优化查询

RegQueryValueEx,需要一些帮助

需要一些CMD帮助

需要R函数的一些帮助

构建一个应用程序,为我提供一些我可以点击的网页标题

我在应用程序中有一些错误

对Spring Framework应用程序中JDBC在RowMapper中使用的一些疑问

使用一些共享模块创建两个netbeans应用程序

Nodewebkit应用程序需要花费一些时间才能在Windows中加载

需要一些有关为我的应用程序用户创建云存储的建议

Android Studio / Gradle:在构建主应用程序之前,强制构建一些模块并将其复制到目录中