Я довольно новичок в python и gtk, и я пишу приложение для Ubuntu App Showdown, используя Quickly. Я хочу создать новый экземпляр главного окна, когда пользователь нажимает «Новый».
У меня есть кнопка и пункт меню, связанные, то есть я могу сделать так, чтобы при нажатии на них они печатались как «новые» для командной строки. Однако я искал и не могу найти, как сделать новый экземпляр.
Если вы хотите запустить новое окно вашего приложения в том же процессе, вы можете просто создать новый экземпляр класса окна, который был быстро создан для вас.
Мое приложение называется быстро-gtk, и в модуле python ./quickly_gtk/init.py У меня есть следующие строки (внизу файла):
# Run the application.
window = QuicklyGtkWindow.QuicklyGtkWindow()
window.show()
[ 114] Если вы вызовете это снова, он запустит новый экземпляр вашего основного окна. Тем не менее, код, который создает Quickly, действительно предназначен для запуска одного экземпляра этого окна за раз, поэтому у вас будут некоторые побочные эффекты, которые вам понадобятся для кодирования.
Например, быстро соединяет событие закрытия окна с обратным вызовом, который завершает весь ваш процесс. Если у вас есть несколько окон, вам нужно переопределить метод on_destroy()
вашего окна. Вероятно, будут другие проблемы, с которыми вы столкнетесь при этом.
Вы создаете новое окно, создав объект окна и затем показав его. Вот пример кода:
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.show()
Однако могут также помочь полезные ресурсы, такие как PyGTK ссылка: http://developer.gnome.org/pygtk/stable/
Также есть еще несколько учебных пособий по адресу: http://pygtk.org/pygtk2tutorial /