Я пытаюсь сделать систему сетки для моего окна Tkinter. Я не знаю, как это сделать правильно. Это была бы система, в которой я могу ввести что -то вроде 2,2, и она помещает ее на сетку (с большими квадратами в этой сетке). < /P>
import tkinter as tk
class Trk:
def __init__(self,win,blocksx,blocksy,bg="#232627"):
self.screenwidth = win.winfo_screenwidth()
self.screenheight = win.winfo_screenheight()
self.canvas = tk.Canvas(win,width=self.screenwidth,height=self.screenheight,background=bg)
self.canvas.pack()
self.background = bg
self.parent = win
self.winwidth = win.winfo_width()
self.winheight = win.winfo_height()
self.width = self.canvas.winfo_width()
self.height = self.canvas.winfo_height()
self.blockx = blocksx
self.blocky = blocksy
self.canvas.config(highlightthickness=0)
self.canvas.update()
def coordinate(self,row,col):
"""
Gets the coordinates
of a certain block.
"""
row -= 1
col -= 1
if row > self.blockx or col > self.blocky or row < 0 or col < 0:
"raise positionError"
x = col * (self.width / self.blockx)
y = row * (self.height / self.blocky)
print(f"Coordinates for block ({row}, {col}): ({x}, {y})")
return x, y
def addLine(self,row1,col1,row2,col2,color="white",width=0.5):
row1,col1 = self.coordinate(row1,col1)
row2,col2 = self.coordinate(row2,col2)
self.canvas.create_line(row1,col1,row2,col2,fill=color,width=width)
self.canvas.update()
Функция координаты должна разделить окно на Blockx столбцы и строки Blocky , чтобы сделать сетку, которой нет психически, но может использоваться для выравнивания элементов (например, использование Addline () ). Он не разделяется правильно и не относится к размеру Windows и тому, что называется класс TRK . Какое правильное уравнение? 1,1 будет равным 0,0 в координатах TKINTER. И trk.blockx и trk.blocky будет равным, сколько блоков существует, поэтому Blockx, Blocky будет правом нижней частью.from tkinter import *
from terkinter import *
parent = tk.Tk()
canv = Trk(parent,20,40) # these are maximum coordinates
print(canv.coordinate(1,1)) # should be top-left
print(canv.coordinate(20,40)) # maximum coordinates, should be bottom right
# also try adjusting the maximum coordinates to make sure that they can be adjusted.
parent.mainloop()
Подробнее здесь: https://stackoverflow.com/questions/796 ... lign-items
Как я могу сделать фоновую сетку с помощью Tkinter, чтобы помочь выровнять элементы? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как сделать адаптивную фоновую сетку с фотографиями профиля пользователя?
Anonymous » » в форуме CSS - 0 Ответы
- 1 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как создать сетку (например, сетку из миллиметровой бумаги) с помощью только CSS?
Anonymous » » в форуме CSS - 0 Ответы
- 101 Просмотры
-
Последнее сообщение Anonymous
-