Рамки прокрутки LTK Scrolled Frame не меняются - PullRequest
1 голос
/ 28 марта 2020

Ltk очень расстраивает из-за отсутствия, а иногда и неправильной документации. (Вы обнаружите, что параметры стиля кнопок не работают)

Я пытаюсь создать простой прокручиваемый фрейм, содержащий NxN много кнопок. К сожалению, полосы прокрутки никогда не "получают это". Казалось бы, ежу понятно, что когда вы помещаете слишком много вещей в контейнер, он автоматически обеспечивает механизм прокрутки. Мы занимаемся этим в TUI и GUI долгое время.

Может кто-нибудь исправить код, приведенный ниже? Бонусные баллы, если вы можете выяснить, как раскрасить кнопки смесью цветов.

<code>
(defun run-demo ()
  (with-ltk ()
    (wm-title *tk* "NxN Button Tray")
    (set-geometry *tk* 480 320 0 0)
    (let* ((sw (make-instance 'scrolled-frame :master *tk*)))
      (dotimes (y 20)
        (dotimes (x 20)
          (let* ((b (make-instance 'button
                                   :master (canvas sw)
                                   :text (format nil "(~a,~a)" x y))))
               (grid b x y))))
      (pack sw))))
</code>

Вот скриншот проблемы. Полосы прокрутки отказываются видеть, что их внутренний виджет нуждается в прокрутке.

Scrollbars not expanding

Большое спасибо за удар по нему ... С уважением, Pixel_Outlaw

1 Ответ

2 голосов
/ 30 марта 2020

Я уверен, что другие столкнутся с той же проблемой. Ответ должен был использовать следующий (интерьер w) аксессуар. Я только нашел это, просматривая архивы списка рассылки. Тем не менее, Юрий еще не определился с цветовой схемой.

(defun run-demo ()
  (with-ltk ()
    (wm-title *tk* "NxN Button Tray")
    (set-geometry *tk* 480 320 0 0)
    (let* ((sw (make-instance 'scrolled-frame :master *tk*)))
      (dotimes (y 20)
        (dotimes (x 20)
          (let* ((b (make-instance 'button
                                   :master (interior sw) ;push inside here!
                                   :text (format nil "(~a,~a)" x y))))
               (grid b x y))))
      (pack sw))))
...