Задача Вчора переді мною постала цікава задача. Потрібно було приховати wxMediaCtrl , який займається програванням відео на формі. Взагалі, оскільки в wxPython все, що малюється, є вікном ( window ), переглянув методи wxWindow . В лоб Ну, логічно, що для приховання знадобиться метод Hide() , але тут-то і виявились граблі. Hide() дійсно ховає контрол, для чого він і призначений, але, з іншого боку, ламає позиціювання у всіх сайзерах, через що в мене всі інші контроли попливли. Звісно, якщо сайзери відсутні, і все позиціювання виконується в абсолютних координатах - ніяких проблем, Hide() підійде, але в моєму випадку - ні. Неочікуване рішення Переробляти все не хотілось, хоча і форма в мене, в принципі не ресайзиться, тому методом научного тика виявив, що проблему можна вирішити використанням методу Freeze() . Відповідно, обернений результат досягається методом Thaw() . Чому рішення неочікуване? Тому що я ніяк не очікував, що після виклику Freeze() контрол с...
Коротко про анімацію в wxPython Дядечко робить анімацію на wxPython В wxPython засоби для роботи з анімацією - це пакет wx.animate . Пакет досить нехитрий - всього декілька класів, з яких частіше за все в роботі використовуються 2: wx.animate.Animation - інкапсулює параметри анімації, а також підтримує завантаження анімації з файлу. Підтримує Gif і Ani формати анімацій. wx.animate.GifAnimationCtrl - Контрол для рендера і Gif-анімації в графічному інтерфейсі додатку. Останній - дуже класний засіб, оскільки дозволяє фактично в декілька рядків додати в вікно готовуу анімацію: ag_fname = r"progress.gif" ag = wx.animate.GIFAnimationCtrl(self, -1, ag_fname, pos=(0, 0), size=(64,64)) ag.GetPlayer().UseBackgroundColour(True) ag.Play() Досить непогано. І навіть більше ... прозорість. Прозрачность Третій рядок наведеного коду натякає нам, що анімація буде використовувати замість кольору, який в ній встановлений прозорим - фоновий колір вікна. Кажуть, що на GTK воно так і...