如何在python中检索按钮的行和列信息并使用此信息更改其设置

2024-10-01 17:33:24 发布

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

我正在创建一个游戏,并试图使它在python和tkinter。我已经在基于word的python中完成了它,并希望将其图形化。 我已经创建了一个按钮网格用作网格,这些按钮上的字母“O”表示空白。然而,我想要的是一个按钮,显示一个海盗在哪里的文字,然后最终玩家和胸部。文本不能硬编码,因为位置是随机选择的。在

while len(treasure)<chestLimit: 
    currentpos=[0,0]
    T=[random.randrange(boardSize),random.randrange(boardSize)] 
    if T not in treasure or currentpos:    
        treasure.append(T)  
        while len(pirate)<pirateLimit:  
            P=[random.randrange(boardSize),random.randrange(boardSize)]     
            if P not in pirate or treasure or currentpos:
                pirate.append(P)    
boardselectcanv.destroy()
boardcanv=tkinter.Canvas(window, bg="lemonchiffon", highlightcolor="lemonchiffon", highlightbackground="lemonchiffon")
boardcreateloop=0
colnum=0
while colnum != boardSize:
    rownum=0
    while rownum != boardSize:
        btn = tkinter.Button(boardcanv, text="O").grid(row=rownum,column=colnum)
        boardcreateloop+=1
        rownum+=1
    colnum+=1
if btn(row,column) in pirate:
    btn.configure(text="P")
boardcanv.pack()

这是创建栅格的主要部分,一直到现在为止:

^{pr2}$

所以我想知道是否有办法获得行和列,看看它是否在列表中?在

谢谢


Tags: oriniftkinterrandom按钮randrangewhile
1条回答
网友
1楼 · 发布于 2024-10-01 17:33:24

您可以在按钮小部件上调用.grid_info(),以获取其网格信息。在

from tkinter import *

root = Tk()

def showGrid():
    row    = btn.grid_info()['row']      # Row of the button
    column = btn.grid_info()['column']   # grid_info will return dictionary with all grid elements (row, column, ipadx, ipday, sticky, rowspan and columnspan)
    print("Grid position of 'btn': {} {}".format(row, column))

btn = Button(root, text = 'Click me!', command = showGrid)
btn.grid(row = 0, column = 0)

root.mainloop()

相关问题 更多 >

    热门问题