cmd
. Нажми Enter.python имя_файла_скрипта.py
и нажми Enter.[7][8][9]
[4][5][6]
[1][2][3]
[ 0 ][.]
import typing as tp
import tkinter as tk
class DigitPanel(tk.Frame):
def __init__(self, master, **kwargs):
# хорошая идея передавать параметры настройки (типа цвет и т.п.) в конструктор предка
super().__init__(master, **kwargs)
# у нас есть поле on_digit, которое принимает либо None, либо функцию вида (str) -> None
# если функция задана, мы будем её вызывать по нажатию кнопки с цифрой
self.on_digit: tp.Optional[tp.Callable[[str], None]] = None
# тут создаём кнопки, и каждой вешаем обработчик self.__clicked
b = tk.Button(text='0', command=lambda btn='0': self.__clicked(btn))
... # дальше кнопку размещаешь через grid() или ещё как
# Можно их создавать циклом, можно штучно.
def __clicked(self, btn: str) -> None:
if self.on_digit is not None: # если функция-коллбэк нам дана
self.on_digit(btn) # мы её вызываем
def __init__(self):
...
self.digits = DigitPanel(self)
self.digits.on_digit = self.digit_pressed
...
# подразумевается, что дальше есть что-то типа
def digit_pressed(self, digit: str) -> None:
... # тут обрабатываем нажатие кнопки с цифрой
The only arguments and attributes are now bot and update_queue as now the sole purpose of this class is to fetch updates. The entry point to a PTB application is now telegram.ext.Application.
raise SMErrors.notVoiceStateErr
disnake.FFmpegPCMAudio("songs/song.mp3"))
В конце-концов, у нас же только одно ssh-соединение, так что о больших нагрузках речи не идёт.