Сетка внутри рамки?

Можно ли разместить сетку кнопок в Tkinter внутри другого фрейма?

Я хочу создать игру типа tic-tac-toe и хочу использовать функцию сетки, чтобы поставить gamesquares (это будут кнопки). Тем не менее, я хотел бы иметь другие вещи в графическом интерфейсе, отличном от игрового поля, поэтому не просто просто иметь все в одной сетке.

Проиллюстрировать:

O | X | X | ---------- | O | O | X | Player 2 wins! ---------- | X | O | X | 

Доска tic tac toe находится в сетке, состоящей из всех кнопок, а «победитель 2 игрока» – это метка внутри рамки.

Это упрощение того, что я пытаюсь сделать, чтобы нести меня, поскольку я разработал программу до сих пор (плата динамически создана), сетка имеет наибольший смысл.

Редактировать: Была ли мысль, но когда я запускаю ее, ничего не происходит? Если я выберу бит кадра, это произойдет. Есть идеи?

 from Tkinter import * root = Tk() b = Button(root, text = "1") b.grid(row=1, column=3) b2 = Button(root, text = "2") b2.grid(row=1, column=4) f = Frame(root, bg = "red") f.pack(side=RIGHT) root.mainloop() 

  • Как обновить содержимое FigureCanvasTkAgg
  • Tkinter - RuntimeError: превышена максимальная глубина рекурсии
  • Дерево python tkinter получает выбранные значения элемента
  • Пакет сообщений импорта Python tkinter 8.5
  • Показать полноэкранный режим на Tkinter
  • Как упаковать виджет tkinter под существующим виджетами, который был упакован в левую сторону?
  • Как изменить цвет переднего плана или фона кнопки Tkinter на Mac OS X?
  • Как заставить Tkinter работать с mac
  • 2 Solutions collect form web for “Сетка внутри рамки?”

    Выяснилось, как это сделать:

     from Tkinter import * root = Tk() f = Frame(root, bg = "orange", width = 500, height = 500) f.pack(side=LEFT, expand = 1) f3 = Frame(f, bg = "red", width = 500) f3.pack(side=LEFT, expand = 1, pady = 50, padx = 50) f2 = Frame(root, bg = "black", height=100, width = 100) f2.pack(side=LEFT, fill = Y) b = Button(f2, text = "test") b.pack() b = Button(f3, text = "1", bg = "red") b.grid(row=1, column=3) b2 = Button(f3, text = "2") b2.grid(row=1, column=4) b3 = Button(f3, text = "2") b3.grid(row=2, column=0) root.mainloop() 

    Наличие сетки внутри рамки внутри кадра – это немного взломать, чтобы получить прокладку вокруг сетки, но она работает, поэтому я счастлив.

    Вы можете вставлять виджеты Tk произвольно глубоко. Введите руководство :

    Размер любого главного виджета определяется размером «ведомых виджетов» внутри. Пакер используется для управления, где ведомые виджеты появляются внутри мастера, в который они упакованы. Вы можете упаковать виджеты в фреймы и кадры в другие фреймы, чтобы достичь желаемого вида макета. Кроме того, устройство динамически регулируется, чтобы вносить изменения в конфигурацию после его упаковки.

    Действительно, кадр, содержащий (кадр кнопок) и метку, – это то, как вы должны структурировать описываемый макет.

    Interesting Posts

    Создание декораторов с дополнительными аргументами

    Как может базовый класс python определить, переопределил ли подкласс его методы?

    Создайте дополнение списка, сохраняющее повторяющиеся значения

    Django: как установить уровень журнала для INFO или DEBUG

    Уведомление о истечении срока действия ключа в redis python

    Быстрый Pythonic способ превратить множество списков строк в списки поплавков при ловле ValueErrors

    Django – не удается загрузить статические файлы CSS

    Изменение стоимости на нескольких позициях в списке списка при попытке изменения в одном месте

    Как я могу подавать стандартный ввод подпроцесса из итератора Python?

    Как извлечь текстовые и текстовые координаты из PDF-файла?

    запустить django с xampp на окнах

    Как создать файл яйца Python

    Python GDAL: установить протокол –no-install GDAL не удается

    else & elif не работает в Python

    Индексация тензорного потока с булевым тензором

    Python - лучший язык программирования в мире.