Arkaplan araştırması
Ben çağrı python/Gtkkullanılarak oluşturulan basit bir uygulama için Unity başlatıcısı içinde ilerleme çubuğunu güncellemeye çalışıyorum ; Ancak talimatları uygulayarak bu video , başarıyla ilerleme çubuğunun güncellemek için edemedik fırlatıcı . Unity Integration videosunda kullanılmadı, bu nedenle uygulamanın yapılandırılma şekli biraz farklıydı ve videoda kullanılan kod, varsayılan bir şablon uygulamasında değişiklik yapılmadan düzgün çalışmıyor gibi görünüyor .QuicklytestUnityQuicklyQuickly ubuntu-application
Ekran görüntüleri
Uygulama simgesinin şu anda Unity Launcher'da görüntülendiği için ekran görüntüsü.

İşte istediğim Unity başlatıcısı ilerleme çubuğu işlevselliğinin bir ekran görüntüsü (posta simgesine bindirilmiştir: wiki.ubuntu.com ).

Proje Kodu
.zipProje dosyalarını içeren bir dosya burada bulunabilir .
Beklenen davranış
Yukarıdaki kodun Unity Launcher'daki test uygulaması simgesine% 75 dolu bindirilmiş bir ilerleme çubuğu göstermesini beklerim , ancak uygulama yalnızca çalıştırıldığında ve komut quickly runyürütüldüğünde ilerleme çubuğu görüntülemez .
Problem Soruşturması
Sorunun düzgün bir şekilde uygulamanın ana penceresine bir referans almıyorum olduğuna inanıyorum, ancak, bu sorunu nasıl düzelteceğimi bilmiyorum. Ayrıca satır inanıyorum: sıradan dosyaları yerine dosyaları oluşturur self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop"), çünkü bu da sorunlara neden olup olmadığını emin değilim çünkü başka bir komplikasyon kaynağı olabilir.Quickly.desktop.in.desktop
Belki de sorunun başka bir kaynağı .desktopve .desktop.indosyalar arasındaki farkı tam olarak anlamam . test.desktop.inDosyanın bir kopyasını oluşturmak ve yeniden adlandırmak ve doğru dosyaya başvurmak için test.desktopyerleştirmek muhtemelen mantıklı mı ?/usr/share/applicationsget_for_desktop_id("test,desktop").desktop
İlgili Araştırma Linkleri
Yine de, .desktop ve .desktop.in dosyaları arasındaki fark konusunda net değilim, ancak .desktop dosyaları üzerinde biraz araştırma yaptım ve birkaç bağlantıya rastladım:
- Masaüstü Giriş Dosyaları (library.gnome.org)
- Masaüstü Dosya Kurulum Dizini (askubuntu.com)
- Unity Launcher API'sı (wiki.ubuntu.com)
- Masaüstü Dosyaları: uygulamanızı masaüstü menülerine yerleştirme (developer.gnome.org)
- Masaüstü Menüsü Özellikleri (standards.freedesktop.org)
Düzenle
Çalıştırdıktan python setup.py buildsonra /build/share/applicationsyerleşik test.desktopdosyaya gidip taşıdıktan ~/.local/share/applicationsve son olarak yürüttükten sonra quickly run, görünür bir ilerleme çubuğu olmadan yalnızca bir simge için bir soru işareti görüntülenir .

Düzenle 2
Yapılmış .desktopdosya üzerinde daha fazla araştırma yapıldıktan sonra , satırın:
dosya Icon=/usr/share/test/media/test.svgiçinde mevcut olmayan .desktopbir simge dosyasına işaret test.svgettiği ortaya çıkıyor.
Bu sorunu gidermek için, ben denilen yeni bir klasör oluşturdu testiçinde /usr/share/komutunu kullanarak sudo mkdir testve sonra denilen bir test klasörünün başka klasör içini oluşturulan mediakomutunu kullanarak sudo mkdir media, sonra taşındı test.svgbenim Hızla proje dizininde yer alan simge dosyası test/data/media/test.svgiçin /usr/share/test/media/. Uygulamanın .svgsimgesi artık Unity başlatıcı çubuğunda ve alt sekme görünümünde düzgün bir şekilde görüntüleniyor, ancak aşağıdaki ekran görüntüsünde gösterildiği gibi hala görünür bir ilerleme çubuğu yok .

Düzenle 3
@Dobey'in belirttiği gibi, satırdaki TestWindow.py dosyasının kodunda bir yazım hatası vardı:
self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop"),
nerede test.destkopolmalı test.desktop.
Bu yazım hatasını değiştirdim ve uygulama kullanılarak yürütüldüğünde hiçbir görünür değişiklik olmadı quickly run. Ancak, hat ilave edildikten sonra print('Integrating with launcher')hiç add_launcher_integration()bir sorun olduğu görülmektedir gösteren uygulama çalıştırıldı ve terminalde gelen çıkış yoktu add_launcher_integration()uygulama başladığında doğru çağrılacak görünmemektedir.
Düzenle 4
Daha fazla araştırmadan sonra, add_launcher_integration()aslında uygulama başladığında denir. Hattın eklenmesiyle:
os.system("clear")
çizgiden önce
print("Integrating with launcher")
"Başlatıcı ile entegrasyon" mesajı artık terminal.
Bununla birlikte, Unity başlatıcı çubuğunda görünür bir ilerleme çubuğu yoktur .
Düzenleme 5
Yeniden sonra Quicklyyürüterek projeyi python setup.py buildve yerleşik hareket .desktopiçinde dosyayı Quicklybulunan proje /build/share/applications/için ~/.local/share/applicationsBirlik başlatıcısı çubuğu düzgün şimdi görüntüler, uygulama simgesi ve ilerleme çubuğu. Başlatıcı entegrasyonunun bir ekran görüntüsü aşağıda görülebilir.
