পটভূমি গবেষণা
আমি ডেকে python/Gtk
ব্যবহার করে তৈরি করা একটি সাধারণ অ্যাপ্লিকেশনটির জন্য ইউনিটি লঞ্চারের মধ্যে অগ্রগতি বারটি আপডেট করার চেষ্টা করছি ; তবে নির্দেশাবলী অনুসরণ এই ভিডিওটি , আমি সফলভাবে প্রগতি দণ্ড আপডেট করতে পেরেছি লঞ্চার । ইউনিটি ইন্টিগ্রেশন ভিডিওতে ব্যবহৃত হয়নি, সুতরাং অ্যাপ্লিকেশনটি যেভাবে গঠন করা হয়েছে তা কিছুটা আলাদা ছিল এবং ভিডিওটিতে ব্যবহৃত কোডটি কোনও ডিফল্ট টেম্পলেট অ্যাপ্লিকেশনটিতে পরিবর্তন ছাড়া সঠিকভাবে কাজ করে না বলে মনে হয় ।Quickly
test
Unity
Quickly
Quickly ubuntu-application
স্ক্রীনশট
অ্যাপ্লিকেশন আইকনের একটি স্ক্রিনশট এটি বর্তমানে ইউনিটি লঞ্চারে প্রদর্শিত হওয়ায় এটি।
আমি যে জাতীয় ইউনিটি প্রবর্তক বারের কার্যকারিতাটি পছন্দ করতে চাই তার একটি স্ক্রিনশট এখানে রয়েছে (মেল আইকনটিতে ওভারলেড করা হয়েছে : উইকি.উবুন্টু.কম )।
প্রকল্পের কোড
.zip
প্রকল্পের ফাইলযুক্ত একটি ফাইল এখানে পাওয়া যাবে ।
প্রত্যাশিত আচরণ
আমি উপরের কোডটি progressক্য লঞ্চারের পরীক্ষার অ্যাপ্লিকেশনটির জন্য আইকনটিতে 75% পূর্ণ ওভারলেড হওয়া একটি অগ্রগতি বারটি দেখানোর প্রত্যাশা করব , তবে কমান্ডটি quickly run
কার্যকর করা হলে অ্যাপ্লিকেশনটি কেবল চালিত হয় এবং কোনও অগ্রগতি বার প্রদর্শন করে না ।
সমস্যা তদন্ত
আমি বিশ্বাস করি যে সমস্যাটি হ'ল আমি যথাযথভাবে অ্যাপ্লিকেশনটির মূল উইন্ডোতে একটি রেফারেন্স পাচ্ছি না, তবে কীভাবে এই সমস্যাটি সঠিকভাবে সমাধান করা যায় তা সম্পর্কে আমি নিশ্চিত নই। আমি আরও বিশ্বাস করি যে রেখাটি: self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")
জটিলতার আরও একটি উত্স হতে পারে কারণ সাধারণ ফাইলের চেয়ে ফাইল Quickly
তৈরি করে, তাই আমি নিশ্চিত নই যে এটির কারণে সমস্যাও ঘটছে কিনা I.desktop.in
.desktop
সম্ভবত, সমস্যার আরেকটি উত্স হ'ল আমি .desktop
এবং .desktop.in
ফাইলগুলির মধ্যে পার্থক্যটি পুরোপুরি বুঝতে পারি না । test.desktop.in
ফাইলটির একটি অনুলিপি তৈরি করে পুনরায় নামকরণ করা test.desktop
এবং সঠিক ফাইলটি উল্লেখ /usr/share/applications
করার জন্য এটি স্থাপন করা কি সম্ভবত বোধগম্য ?get_for_desktop_id("test,desktop")
.desktop
সম্পর্কিত গবেষণা লিঙ্ক
যদিও, আমি .ডেস্কটপ এবং .ডেস্কটপ.ইন ফাইলগুলির মধ্যে পার্থক্য সম্পর্কে এখনও পরিষ্কার নই, আমি .ডেস্কটপ ফাইলগুলি নিয়ে কিছু গবেষণা করেছি এবং আমি কয়েকটি লিঙ্ক পেয়েছি:
- ডেস্কটপ এন্ট্রি ফাইল (গ্রন্থাগার.gnome.org)
- ডেস্কটপ ফাইল ইনস্টলেশন ডিরেক্টরি (Askubuntu.com)
- ইউনিটি লঞ্চার API (wiki.ubuntu.com)
- ডেস্কটপ ফাইলগুলি: আপনার অ্যাপ্লিকেশনটি ডেস্কটপ মেনুতে রেখেছেন (developer.gnome.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
অ্যাপ্লিকেশনের জন্য আইকন এখন ইউনিটি লঞ্চার বারে সঠিকভাবে প্রদর্শন করে এবং Alt-ট্যাব দৃশ্য অবশ্য এখনও কোনো দৃশ্যমান উন্নতি বার নীচে স্ক্রিনশট দেখানো হয়েছে।
সম্পাদনা 3
@ ডবি যেমন উল্লেখ করেছেন, লাইনে টেস্ট উইন্ডো.পি ফাইলের কোডটিতে একটি টাইপ ছিল:
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
।
তবে, ইউনিটি লঞ্চার বারটিতে এখনও কোনও অগ্রগতি দর্শনযোগ্য নয় ।
সম্পাদনা করুন 5
পুনর্নির্মাণ করার পর Quickly
নির্বাহ দ্বারা প্রকল্প python setup.py build
এবং নির্মিত চলন্ত .desktop
মধ্যে ফাইল Quickly
এ অবস্থিত প্রকল্পের /build/share/applications/
জন্য ~/.local/share/applications
, অ্যাপ্লিকেশন আইকন এবং প্রগতি দণ্ড এখন প্রদর্শন সঠিকভাবে ইউনিটি লঞ্চার বারে। লঞ্চার ইন্টিগ্রেশনের একটি স্ক্রিনশট নীচে দেখা যাবে।