Python 单击“运行”按钮即可显示一系列界面
我已经写了一个程序,有大约40个界面,可以同时显示。代码如下:Python 单击“运行”按钮即可显示一系列界面,python,tkinter,Python,Tkinter,我已经写了一个程序,有大约40个界面,可以同时显示。代码如下: import Tkinter root = Tkinter.Tk( ) root.title("8 Puzzle Game") Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1) Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=1,column=2) Tkinter.Label
import Tkinter
root = Tkinter.Tk( )
root.title("8 Puzzle Game")
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
def mainprg():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
B.configure(command = mainprg1)
B = Tkinter.Button(root, text = "Run", command = mainprg)
B.grid(row = 4, column = 1)
def mainprg1():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
B.configure(command = mainprg2)
def mainprg2():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=3,column=3)
B.configure(command = mainprg3)
root.mainloop()
在这里,我每次都要按Run按钮来显示下一个界面。我应该怎么做才能同时显示它们呢?如果您的意思是“按一下按钮,然后一行运行它们”,您可以通过替换
B.configure(command = mainprgX)
借
其中X必须由实际数字替换
这将在每个功能结束时触发一个1秒计时器以启动下一个计时器
因此,新的准则是:
import Tkinter
root = Tkinter.Tk( )
root.title("8 Puzzle Game")
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
def mainprg():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
root.after(1000, mainprg1)
B = Tkinter.Button(root, text = "Run", command = mainprg)
B.grid(row = 4, column = 1)
def mainprg1():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
root.after(1000, mainprg2)
def mainprg2():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=3,column=3)
root.after(1000, mainprg3)
root.mainloop()
是否要在不同的窗口中显示每个窗口?同时显示是什么意思?肩并肩?在彼此的上面?不是在不同的窗口中。我想一个接一个地显示它们(就像幻灯片放映一样)。与其将更多的标签重叠在一起,为什么不保留对它们的引用并更改它们的文本?例如,这将使您的代码更具可读性,
topleft.config(text=“4”)
。我不明白您想说什么。只要接受答案,让每个人都知道您的问题已经解决。不客气:)您是否想过将所有幻灯片的内容存储在一个2D阵列中?我可以帮你打字吗。只需使用for循环迭代每个接口,您只需要1个更新函数istead为40。每个接口与前一个接口不同。空白由一个数字代替,反之亦然。所以我想不出如何对它们进行迭代。您可以使用字符串来表示数字和空格,因此与python没有区别。
import Tkinter
root = Tkinter.Tk( )
root.title("8 Puzzle Game")
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
def mainprg():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
root.after(1000, mainprg1)
B = Tkinter.Button(root, text = "Run", command = mainprg)
B.grid(row = 4, column = 1)
def mainprg1():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=3,column=3)
root.after(1000, mainprg2)
def mainprg2():
Tkinter.Label(root, text= '4', borderwidth=25 ).grid(row=1,column=1)
Tkinter.Label(root, text= '8', borderwidth=25 ).grid(row=1,column=2)
Tkinter.Label(root, text= '3', borderwidth=25 ).grid(row=1,column=3)
Tkinter.Label(root, text= '2', borderwidth=25 ).grid(row=2,column=1)
Tkinter.Label(root, text= '5', borderwidth=25 ).grid(row=2,column=2)
Tkinter.Label(root, text= '1', borderwidth=25 ).grid(row=2,column=3)
Tkinter.Label(root, text= '7', borderwidth=25 ).grid(row=3,column=1)
Tkinter.Label(root, text= '6', borderwidth=25 ).grid(row=3,column=2)
Tkinter.Label(root, text= ' ', borderwidth=25 ).grid(row=3,column=3)
root.after(1000, mainprg3)
root.mainloop()