【发布时间】:2014-09-30 13:17:36
【问题描述】:
所以,我正在 Python 中创建一个扫雷 GUI,但我无法决定为磁贴使用标签或消息小部件。我想为游戏中的每个图块应用救济选项“RAISED”,但该选项在消息小部件中不起作用。但是,如果我使用 Label 小部件,尽管使用了 justify 选项,但框中的数字不会居中,但救济工作。如何在消息小部件中使用救济?如果不可能,如何在标签小部件中居中文本?到目前为止,这是我的代码:
import random
try: # ensures usage of best GUI package on computer
from tkinter import Tk
from tkinter import Message
from tkinter.ttk import *
except ImportError:
from tkinter import *
class Board:
def __init__(self, width, height, numBombs):
self.width = width
self.height = height
self.bombs = numBombs
self.boxlist = []
for i in range(width * height):
a = Message(relief = 'raised', justify = 'center')
a.grid(column = (i + 1) % width, row = (i + 1) // width, ipadx = 15, ipady = 5)
if i == width * height - 1:
a.grid(row = 0, column = 0, ipadx = 15, ipady = 5)
a.bind('<Button-1>', self.reveal)
self.boxlist.append(a)
self.reallist = ['0'] * width * height
def reveal(self, event):
event.widget['text'] = self.reallist[self.boxlist.index(event.widget)]
a = Board(5, 6, 10)
【问题讨论】: