Разработка Tkinter GUI: центрирование кнопок

Очевидный простой ответ отсутствует, поэтому для полноты:

Но есть , любой способ иметь значения в свойствах объекта литерала зависит от других объявленных свойств раньше?

Нет. Все решения здесь откладывают до тех пор, пока объект не будет создан (по-разному), а затем назначит третье свойство. Простейший способ состоит в том, чтобы просто сделать это:

var foo = {
    a: 5,
    b: 6
};
foo.c = foo.a + foo.b;

Все остальные - более косвенные способы сделать то же самое. (Felix's особенно умный, но требует создания и уничтожения временной функции, добавления сложности и либо оставляет дополнительное свойство для объекта, либо [если вы delete это свойство] влияет на производительность последующего свойства доступ к этому объекту.)

Если вам нужно, чтобы все были в одном выражении, вы можете сделать это без временного свойства:

var foo = function(o) {
    o.c = o.a + o.b;
    return o;
}({a: 5, b: 6});

Или, конечно, если вам нужно для этого более одного раза:

function buildFoo(a, b) {
    var o = {a: a, b: b};
    o.c = o.a + o.b;
    return o;
}

, где вам нужно его использовать:

var foo = buildFoo(5, 6);

1
задан martineau 23 March 2019 в 16:13
поделиться

1 ответ

Вот как реализовать то, что я предложил в комментарии:

import tkinter

gui = tkinter.Tk()
gui.title('TicTacToe')
gui.geometry('700x700')

button_frame = tkinter.Frame(gui)  # Frame to hold (and group) buttons.
singlePlayerBut = tkinter.Button(button_frame, text='Single Player', command=0)
singlePlayerBut.pack(side=tkinter.RIGHT, padx=50, anchor=tkinter.CENTER)
multiPlayerBut = tkinter.Button(button_frame, text='Multi Player', command=0)
multiPlayerBut.pack(side=tkinter.LEFT, padx=50, anchor=tkinter.CENTER)
button_frame.pack()  # Default side is tkinter.TOP

gui.mainloop()
0
ответ дан martineau 23 March 2019 в 16:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: