Python Как сделать ячейки Pillow
Как можно сделать ячейки так, как показано на картинке. В будущем туда будет записываться информация.
То есть в переменной будет указано сколько нужно создать ячеек - столько ячеек и будет создаваться.
Картинка:
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Так как мне нравится все делать на PyQt5, то я вам и продемонстрирую как бы я это сделал.
Если вы еще не установили PyQt5, то я очень рекомендую.
PyQt — реализация фреймворка Qt для языка Python.
pip install PyQt5
pip install pyqt5-tools
Теперь запускаем python main.py, вводим сколько нужно создать ячеек и
нажимаем кнопку 'Click me'.
main.py
from PyQt5.Qt import *
class Demo(QMainWindow):
def __init__(self):
super().__init__()
self.centralWidget = QWidget()
self.centralWidget.setObjectName('centralWidget')
self.setStyleSheet("background-color: #402218;")
self.setCentralWidget(self.centralWidget)
self.frame = QFrame()
self.w, self.h = 580, 580
self.frame.setFixedSize(self.w, self.h)
self.groupBoxLayout = QGridLayout(self.frame)
self.groupBoxLayout.setContentsMargins(0, 0, 0, 0)
self.groupBoxLayout.setSpacing(0)
self.groupBoxLayout.setRowStretch(10, 1)
self.spinBox = QSpinBox()
self.spinBox.setMinimum(1)
self.spinBox.setMaximum(25)
self.spinBox.setProperty("value", 7)
self.spinBox.setStyleSheet("background-color: #D5DBB3;")
self.pushButton = QPushButton('Click me')
self.pushButton.setStyleSheet("background-color: #D5DBB3;")
self.pushButton.clicked.connect(self.on_clicked)
layout = QVBoxLayout(self.centralWidget)
layout.addWidget(self.frame)
layout.addWidget(self.spinBox)
layout.addWidget(self.pushButton)
def on_clicked(self):
num = self.spinBox.value()
_column = num ** (0.5)
column = int(_column) + (1 if _column % 1 else 0)
countLayout = self.groupBoxLayout.count()
for it in range(countLayout):
w = self.groupBoxLayout.itemAt(0).widget()
self.groupBoxLayout.removeWidget(w)
w.hide()
for i in range(num):
label = QLabel(f'<span style="color: #D7B19D;">{i+1}</span>',
alignment=Qt.AlignCenter)
label.setFixedSize(self.w//column, self.h//column)
label.setStyleSheet(
f"font-size: {300//column}px; border: 2px solid #C68B59; \
background-color: #865439;")
self.groupBoxLayout.addWidget(label, i // column, i % column)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
w = Demo()
w.show()
sys.exit(app.exec_())


