Фонове дослідження
Я намагаюся оновити панель прогресу в панелі запуску Unity для простого python/Gtkдодатка, створеного за допомогою Quicklyвиклику test; однак, дотримуючись вказівок цього відео , я не зміг успішно оновити панель прогресу в Unityпусковій установці . У відео Unity Integration відео Quicklyне використовувалося, тому спосіб структурування додатка був дещо іншим, а код, використаний у відео, схоже, не працює належним чином без змін у Quickly ubuntu-applicationпрограмі шаблону за замовчуванням .
Скріншоти
Ось скріншот піктограми програми, оскільки вона наразі відображається у запуску Unity Launcher.

Ось скріншот типу функціональної панелі ходу запуску Unity, який я хотів би (накладений на піктограму пошти: wiki.ubuntu.com ).

Код проекту
.zipФайл , що містить файли проекту можна знайти тут .
Очікувана поведінка
Я б очікував, що вищевказаний код покаже панель прогресу, яка на 75% повна накладка на піктограму для тестової програми в Unity Launcher , але програма запускається і не показує панелі прогресу, коли команда quickly runвиконується.
Дослідження проблем
Я вважаю, що проблема полягає в тому, що я неправильно отримую посилання на головне вікно програми, однак я не впевнений, як правильно виправити цю проблему. Я також вважаю, що рядок: self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")може бути ще одним джерелом ускладнень, оскільки Quicklyстворює .desktop.inфайли, а не звичайні .desktopфайли, тож я не впевнений, що це може також викликати проблеми.
Можливо, ще одне джерело питання полягає в тому, що я не зовсім розумію різницю між файлами .desktopта .desktop.inфайлами. Чи можливо має сенс зробити копію test.desktop.inфайлу та перейменувати його test.desktopта розмістити в ньому /usr/share/applications, get_for_desktop_id("test,desktop")щоб послатись на правильний .desktopфайл?
Пов'язані дослідницькі посилання
Хоча мені все ще не зрозуміло різницю між .desktop і .desktop.in файлами, я провів деякі дослідження файлів .desktop і натрапив на кілька посилань:
- Файли вводу на робочий стіл (library.gnome.org)
- Каталог інсталяції файлів на робочому столі (askubuntu.com)
- API Unity Launcher (wiki.ubuntu.com)
- Файли на робочому столі: розміщення програми у меню робочого столу (developer.gnome.org)
- Специфікація меню робочого столу (standard.freedesktop.org)
Редагувати
Після запуску, python setup.py buildа потім /build/share/applicationsпереходу до та переміщення вбудованого test.desktopфайлу до ~/.local/share/applicationsта, нарешті, виконання quickly run, відображається лише знак питання для піктограми, без видимої смуги прогресу .

Редагувати 2
Після подальшого дослідження вбудованого .desktopфайлу виявляється, що рядок:
Icon=/usr/share/test/media/test.svgу межах .desktopфайлу вказував на файл значка, який називався, test.svgякого не існувало.
Для того , щоб вирішити цю проблему, я створив нову папку з ім'ям testв /usr/share/використанні команди , sudo mkdir testа потім створили іншу папку всередині тестової папки з mediaдопомогою команди sudo mkdir media, а потім я перемістив test.svgфайл значок , розташований в моєму каталозі проекту Швидко на test/data/media/test.svgдо /usr/share/test/media/. .svgЗначок програми тепер відображається правильно в пусковий панелі Unity і в поданні закладками альт, однак досі не видно індикатор , як показано на скріншоті нижче.

Правка 3
Як зазначав @dobey, в коді файла TestWindow.py в рядку була помилка друку:
self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop"),
де test.destkop, має бути test.desktop.
Я змінив цю друкарську помилку, і жодних видимих змін не було, коли програма виконувалася за допомогою quickly run. Однак після додавання рядка print('Integrating with launcher')до add_launcher_integration()терміналу не було відповідного виводу під час запуску програми, що вказує на те, що проблема, здається, add_launcher_integration()не викликається правильно при запуску програми.
Правка 4
Після подальшого розслідування виявляється, що add_launcher_integration()насправді викликається при запуску програми. З додаванням рядка:
os.system("clear")
до лінії
print("Integrating with launcher")
повідомлення "Інтеграція з пусковим пристроєм" тепер відображається в terminal.
Однак на панелі запуску Unity все ще не існує видимої смуги прогресу .
Редагуйте 5
Після відновлення Quicklyпроекту шляхом виконання python setup.py buildі переміщення вбудованого .desktopфайлу всередині Quicklyпроекту , розташованого по адресу , /build/share/applications/щоб ~/.local/share/applications, значок програми і прогрес - бар тепер відображається правильно в Unity пускового бару. Скріншот інтеграції запуску можна побачити нижче.
