【问题标题】:how can I retrieve an image from a given grid location if I know the grid row and column in Tkinter?如果我知道 Tkinter 中的网格行和列,如何从给定的网格位置检索图像?
【发布时间】:2021-01-10 04:02:39
【问题描述】:

我是 python GUI 的新手,我正在编写一个简单的游戏,其中涉及将图像从一个网格单元移动到另一个网格单元,并且我不必将图像堆叠在另一个图像之上。因此,要放置图像,我必须检查新位置是否为空。此外,图像只能垂直或水平移动。用户单击要移动的图像,然后单击放置图像的位置。我将每个图像放在一个 8x8 板上的标签中。为了检查移动是水平的还是垂直的,我检查源和目标的行号或列号是否分别相同。如果行号相同,例如从位置(行 = 2,列 = 1)到(行 = 2,列 = 4),我想循环从列 = 2 到列 = 4 的位置并检查是否有图像与否。如果在任何这些单元格中存在图像,即 (2,2,)、(2,3) 或 (2,4),则取消移动。但是关于网格的所有功能只显示如何获取列号和行号,但如果我已经知道行号和列号,则不提供有关如何获取值的任何信息。任何人都可以帮助解决问题吗? 谢谢

【问题讨论】:

  • 使用网格显示值。使用列表\数组来存储值。

标签: python tkinter grid


【解决方案1】:

我相信您正在寻找的网格方法是grid_slaves(row, column)

w.grid_slaves(row=None, column=None) 返回由小部件 w 管理的小部件列表。如果没有提供参数,您将得到一个 所有托管小部件的列表。使用 row= 参数仅选择一行中的小部件,或 column= 参数仅选择一列中的小部件。

请注意,尽管文档声明使用 row= column=, 在实践中,您可以同时指定并在单个网格单元中获取小部件。 作为frame 容器小部件(网格所在的位置),调用frame.grid_slaves(row=3, column=2) 将为您提供该网格单元中的小部件列表(或包含单个项目的列表,以防那里只有一个小部件)或空列表,如果没有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多