单击运行按钮即可显示一系列界面

2024-10-03 19:23:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个程序,有大约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(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()

在这里,我必须按运行按钮每次显示下一个界面。我应该怎么做才能同时显示它们


Tags: text界面tkinterconfiguredefcolumnrootlabel
1条回答
网友
1楼 · 发布于 2024-10-03 19:23:25

如果你的意思是“按一次按钮,然后连续运行”,你可以通过替换

B.configure(command = mainprgX)

root.after(1000, 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()

相关问题 更多 >