簡體   English   中英

如何在不停止腳本的情況下隨機彈出一些gui #python 2.7

[英]How to make randomly pop some gui without stopping the script #python 2.7

我對python比較陌生,所以請多多包涵。

我的問題有兩個方面:

  • 首先,我試圖制作一個GUI,每次在新框架中向用戶隨機彈出不同的句子。

  • 其次,我希望用戶能夠在不停止腳本的情況下關閉GUI,就像腳本在后台運行一樣。

這是我的代碼:

import Tkinter as tk
import random
number = random.randint(0,13)

sentence = {contains 13 sentences
    }

window = tk.Tk()

window.output = tk.Label(text = sentence[number])
window.title("I Always See You")
window.geometry("300x150")

def next():
    rand= random.randint(0, 13)
    window2 = tk.Tk()
    window2.output = tk.Label(text = sentence[rand])
    window2.output.pack(side="top", fill="x", expand=True)
    window2.title("I Always See You")
    window2.geometry("300x150")

window.output.pack(side="top", fill="x", expand=True)

choice()

window.after(1000, next)
window.mainloop()

我的問題是:當第二個框架彈出時,沒有任何文本顯示,並且如果確實有彈出的東西出現在第一個框架中。

另外,如何在.after()中插入隨機浮點數?

非常感謝你的幫助!

干杯

您不會在第二個窗口中看到該文本,因為Tkinter無法處理兩個主窗口。 您需要將Toplevel類用於其他類。 另外,您還沒有在next指定標簽的父級,因此它很可能打包在window而不是window2

另外,您需要14個句子,因為randint不同於randrange包含兩個端點。

要在after設置一個隨機時間,只需使用randint因為它需要整數毫秒。

為了實現您想要的功能,建議您創建一個將退出的主窗口(它將在后台運行)。 然后彈出帶有隨機句子的“頂級”。 您需要再次撥打after里面next ,如果你想窗戶,保持坡平了功能。 為了防止用戶關閉頂層after取消,我從撤回的主窗口中調用after方法:

import Tkinter as tk
import random
number = random.randint(0,13)

sentence = {i: str(i) for i in range(14)}

def next():
    rand=random.randint(0, 13)
    window2 = tk.Toplevel(root)
    window2.output = tk.Label(window2, text=sentence[rand])
    window2.output.pack(side="top", fill="x", expand=True)
    window2.title("I Always See You")
    window2.geometry("300x150")
    tps = random.randint(1000, 10000)
    root.after(tps, next)

root = tk.Tk()
root.withdraw() # hide root window

window = tk.Toplevel(root)

window.output = tk.Label(window, text=sentence[number])
window.title("I Always See You")
window.geometry("300x150")
window.output.pack(side="top", fill="x", expand=True)

tps = random.randint(1000, 10000)
root.after(tps, next)

root.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM