Tkinter: объединение полосы прокрутки с холстом

Они разбираются компилятором , а не препроцессором, который запускает перед компилятором.

Вот что говорит MSDN об этом: http://msdn.microsoft.com/en-us/library/aa903548 (VS.71) .aspx

Вот некоторые проблемы с макросом:

  • Компилятор не может проверить, что макропараметры совместимы.
  • Макрос расширяется без специальной проверки типа.
  • Параметры i и j оцениваются дважды. Например, если какой-либо параметр имеет постинкрементную переменную, инкремент выполняется два раза.
  • Поскольку макросы расширяются препроцессором, сообщения об ошибках компилятора будут ссылаться на расширенный макрос, а не на определение макроса. Кроме того, макрос будет отображаться в расширенной форме во время отладки.
blockquote>

Если этого недостаточно для вас, я не знаю, что есть.

0
задан martineau 2 March 2019 в 02:07
поделиться

1 ответ

Чтобы добавить виджеты в Canvas, вы должны использовать метод create_window, а не grid(). Затем вы должны обновить холст перед настройкой области прокрутки.

for i in range(30):
    btn = tk.Button(buttonFrame, text=str(i+1))
    buttonFrame.create_window((100,i*50), window=btn)
root.update()
buttonFrame.config(scrollregion=buttonFrame.bbox("all"))

Если вы попробуете, я подозреваю, что это не то, что вы искали, поскольку метод create_window требует абсолютного позиционирования (вы не можете использовать grid или pack). Вот почему большинство людей помещают рамку в холст и вместо этого добавляют свои виджеты. Многие люди абстрагировали этот поддельный фрейм, который на самом деле является фреймом в холсте в другом фрейме, включая меня .

0
ответ дан Novel 2 March 2019 в 02:07
поделиться
Другие вопросы по тегам:

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