Как добавить пользовательские виджеты в wxglade - PullRequest
4 голосов
/ 20 января 2012

У меня есть приложение, которое я сделал с помощью wxglade.Я добавил медиаконтроль для воспроизведения mp3: s.Без mediacontrol приложение запускается с фреймом 800x600px.Но когда я добавляю mediacontrol, кадр очень маленький.Я считаю, что это потому, что я не добавил его в классификатор.Но я должен сделать это?Медиаконтроль не должен ничего показывать.

Итак, мой вопрос, как мне добавить mediacontrol в мое приложение без (a) , исключая возможность обновления графического интерфейса с помощью wxglade и (b) потерять способность начинать с нужного размера?

Если бы я мог, я бы ничего не поставил между # Begin wxglade и # End wxglade.Потому что тогда он будет уничтожен, если я изменю свой графический интерфейс с помощью wxglade (в любом случае, согласно более ранним тестам).

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

1 Ответ

4 голосов
/ 20 января 2012

Быстрый трюк:

  1. В том месте, где должен быть виджет, вставьте wx.Panel с помощью wxGlade и дать ему имя mymediactrl вместо, например, mypanel.
  2. Затем, после того как ваш сценарий сгенерирован, импортируйте (или вставьте код) ваш класс MediaControl в месте, разрешенном (недоступном для записи) wxglade (в области за пределами разделов, ограниченных ' # begin wxGlade ' и Теги ' # end wxGlade ').
  3. Наконец, измените вручную строку mymediactrl=wx.Panel(...) в скрипте с помощью mymediactrl = MediaControl(...) строка. Примечание: эта строка должна быть сохранена вручную, когда Вы изменяете свой графический интерфейс, потому что wxglade перезапишет его.

Правильный путь:

Вы можете использовать виджет CustomWidget из набора виджетов wxglade. Это рекомендуемый метод, если у вас есть опыт работы с wxglade.

enter image description here

Метод Pro:

Вы можете добавить свой собственный виджет в набор виджетов wxglade. У вас есть пример и учебник , как это сделать здесь

...