2015-02-20 3 views
-1

Используя приведенный ниже сценарий, отобразится панель с кнопкой. Каждый раз, когда я нажимаю кнопку дисплея, я хочу, чтобы изображение отображалось также на панели. Как я это сделаю?Показать изображение на панели при нажатии кнопки

Ниже приведены фрагменты кода, но, к сожалению, функция дисплея пуст, потому что я не имею ни малейшего представления, что добавить к этой функции:

def InitUI(self): 

     pnl = wx.Panel(self) 
     disbtn = wx.Button(pnl, label='Display', pos=(30, 150)) 

     cbtn.Bind(wx.EVT_BUTTON, self.OnDis) 

     self.SetSize((500, 400)) 
     self.SetTitle('wx.Button') 
     self.Centre() 
     self.Show(True)   

    def OnDis(self, e):  

ответ

1

Вы можете использовать wx.StaticBitmap для отображения изображения. Но чтобы захватить ваш файл изображения, я бы рекомендовал использовать модуль PPython для получения списка изображений, а затем использовать модуль os, чтобы определить, какой файл изображения является самым новым.

Вот еще информация о модуле Глоб:

Для получения нового файла, я хотел бы использовать этот пример StackOverflow и отредактировать его для расширения вашего файла:

Что касается изучения отображения изображений в wxPython, я бы рекомендовал загрузить демонстрационный пакет wxPython. В нем есть несколько отличных примеров. Вы также можете проверить этот учебник:

+0

Я попытался запустить модуль Глоб и появляется эта ошибка 'AttributeError:«модуль»объект не имеет атрибута«iglob''. Я использую python 2.7. – user

+0

Не знаете, что вам сказать. Согласно документации, она была там с тех пор, как Python 2.5 - https://docs.python.org/2/library/glob.html –

+0

Пытался запустить этот 'import os' ' import glob' 'newest = max (glob .iglob ('*. [Mm] [Pp] 3'), key = os.path.getctime) ' ' print newest', а результат был 'ValueError: max() arg - пустая последовательность'. Нужно ли указывать каталог для пути? – user

Смежные вопросы