【问题标题】:How do I show up a floating window when script running脚本运行时如何显示浮动窗口
【发布时间】:2020-11-17 20:53:11
【问题描述】:

我正在尝试制作一个应用程序来从 Youtube 下载视频。我写了一个脚本,脚本没有参数或选项。从剪贴板获取变量。这是我的职责。

def check_clipboard():
    from tkinter import Tk
    r = Tk()
    r.withdraw()
    result = r.selection_get(selection="CLIPBOARD")
    print(result)
    return result

我正在使用这段代码(如下)来捕捉剪贴板的变化。

clipboard_value_0 = check_clipboard()

try:
    while True:
        clipboard_value_1 = check_clipboard()
        sleep(1)

        if clipboard_value_1 != clipboard_value_0:
            print(clipboard_value_1)
            clipboard_value_0 = clipboard_value_1
            ...

它运行良好,但命令提示符总是出现并且不友好。我可以在背景中执行此操作吗?如何在屏幕上显示一个小的浮动图标以显示用户脚本正在运行。如果剪贴板发生变化,请再次执行脚本。

【问题讨论】:

    标签: python python-3.x user-interface tkinter


    【解决方案1】:

    首先在你想显示浮动窗口的位置之前写下下面的命令。

    import threading
    threading.Thread(target=bar).start()
    

    注意-以上代码将帮助您运行并行任务

    然后在任何你想要的地方做一个与下面给出的相同的函数。

    floating_window = Tk()
    floating_window.geometry('+650+350')
    floating_window.wm_overrideredirect(True)
    
    # Progress bar widget
    progress = Progressbar(floating_window, orient = HORIZONTAL,
                length = 200, mode = 'determinate')
    
    # Function responsible for the updation
    # of the progress bar value
    def bar():
        import time
        progress['value'] = 20
        floating_window.update_idletasks()
        time.sleep(1)
    
        progress['value'] = 50
        floating_window.update_idletasks()
        time.sleep(1)
    
        progress['value'] = 100
        floating_window.update_idletasks()
        time.sleep(1)
    
        progress['value'] = 150
        floating_window.update_idletasks()
        time.sleep(1)
        progress['value'] = 200
    
        floating_window.destroy()
    
    progress.pack()
    

    注意-根据你的程序进行Cotsimize,注意它需要多少时间

    如果你想演示


    复制运行下面给出的整个代码
    from tkinter import * 
    from tkinter.ttk import *
    import threading
    
    floating_window = Tk()
    floating_window.geometry('+650+350')
    floating_window.wm_overrideredirect(True)
    
    # Progress bar widget
    progress = Progressbar(floating_window, orient = HORIZONTAL,
                length = 200, mode = 'determinate')
    
    # Function responsible for the updation
    # of the progress bar value
    def bar():
        import time
        progress['value'] = 20
        floating_window.update_idletasks()
        time.sleep(1)
    
        progress['value'] = 50
        floating_window.update_idletasks()
        time.sleep(1)
    
        progress['value'] = 100
        floating_window.update_idletasks()
        time.sleep(1)
    
        progress['value'] = 150
        floating_window.update_idletasks()
        time.sleep(1)
        progress['value'] = 200
    
        floating_window.destroy()
    
    progress.pack()
    
    # This button will initialize
    # the progress bar
    # Button(floating_window, text = 'Start', command = bar).pack(pady = 10)
    threading.Thread(target=bar,daemon=True).start()
    
    # infinite loop
    mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-20
      • 2022-06-13
      • 2022-10-24
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多