আমি কীভাবে আমার অ্যাপ্লিকেশনটির সাথে লঞ্চারের অগ্রগতি বারের কাজ করব?


10

পটভূমি গবেষণা

আমি ডেকে python/Gtkব্যবহার করে তৈরি করা একটি সাধারণ অ্যাপ্লিকেশনটির জন্য ইউনিটি লঞ্চারের মধ্যে অগ্রগতি বারটি আপডেট করার চেষ্টা করছি ; তবে নির্দেশাবলী অনুসরণ এই ভিডিওটি , আমি সফলভাবে প্রগতি দণ্ড আপডেট করতে পেরেছি লঞ্চার । ইউনিটি ইন্টিগ্রেশন ভিডিওতে ব্যবহৃত হয়নি, সুতরাং অ্যাপ্লিকেশনটি যেভাবে গঠন করা হয়েছে তা কিছুটা আলাদা ছিল এবং ভিডিওটিতে ব্যবহৃত কোডটি কোনও ডিফল্ট টেম্পলেট অ্যাপ্লিকেশনটিতে পরিবর্তন ছাড়া সঠিকভাবে কাজ করে না বলে মনে হয় ।QuicklytestUnityQuicklyQuickly 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


সম্পর্কিত গবেষণা লিঙ্ক

যদিও, আমি .ডেস্কটপ এবং .ডেস্কটপ.ইন ফাইলগুলির মধ্যে পার্থক্য সম্পর্কে এখনও পরিষ্কার নই, আমি .ডেস্কটপ ফাইলগুলি নিয়ে কিছু গবেষণা করেছি এবং আমি কয়েকটি লিঙ্ক পেয়েছি:


সম্পাদন করা

চলমান 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, অ্যাপ্লিকেশন আইকন এবং প্রগতি দণ্ড এখন প্রদর্শন সঠিকভাবে ইউনিটি লঞ্চার বারে। লঞ্চার ইন্টিগ্রেশনের একটি স্ক্রিনশট নীচে দেখা যাবে।

অ্যাপ্লিকেশন আইকন এবং অগ্রগতি বার প্রদর্শিত হয়

উত্তর:


8

bamfলাইব্রেরিটি যেখানে জানবে সেই জায়গায় .ডেস্কটপ ফাইলটি ইনস্টল করতে হবে।

আপনার নিজের ~/.local/share/applicationsফোল্ডারে বিল্ট করা .ডেস্কটপ ফাইলটি (যা .desktop.in থেকে তৈরি করা উচিত) অনুলিপি করে পরীক্ষা করতে সক্ষম হওয়া উচিত update-desktop-database ~/.local/share/applications, যদিও আপনার অ্যাপ্লিকেশন কোনও এমআইএমআই টাইপ পরিচালনা না করলে এই কমান্ডটি চালানোর প্রয়োজন হতে পারে না running ।

.Desktop.in এবং .desktop.in এর মধ্যে পার্থক্যটি হ'ল .desktop.in অনুবাদ করার জন্য সেট আপ করা হয়, এবং বিল্ড চলাকালীন ইন্টটল দ্বারা প্রক্রিয়া করা হয়, অনুবাদগুলি সন্নিবেশ করানো হয়, .desktop.in থেকে .ডেস্কটপ ফাইল তৈরি করে ফাইল।

এছাড়াও আমি আপনার কোডটিতে একটি টাইপো লক্ষ্য করেছি:

self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")

"ডেস্ককপ" বনাম "ডেস্কটপ" লক্ষ্য করুন যে এটি হওয়া উচিত। সম্ভবত এটি এটি, যদি এটি পুনরায় টাইপ করার ত্রুটি না হয়। আপনার কোডটি আসলে চালানো হচ্ছে ধরে নেওয়া, এটি একটি সমস্যা। যদি এটি চালিত না হয় তবে সমস্যাটি। আপনি print('Integrating with launcher')দেখতে add_launcher_integration ফাংশনে একটি যোগ করতে পারেন। রান করার সময় এটি টার্মিনালে উপস্থিত হওয়া উচিত।


বিল্ট .ডেস্কটপ ফাইলটি কখন তৈরি হয়? দ্রুত চালানো কার্যকর হলে এটি কী নির্মিত হয় এবং এটি কোথায় অবস্থিত?
কেভিন গুর্নে

আমি দ্রুত ব্যবহার করি না, এবং ঠিক কখন এটি তৈরি হবে তা জানি না, তবে সাধারণত একটি আদর্শ পাইথন লাইব্রেরি / অ্যাপ্লিকেশন সহ ডিস্টুটিলসেক্সট্রার সাথে সেটআপ.পি ব্যবহার করে এটি "./setup.py বিল্ড" চলাকালীন ঘটবে বা " setup.py কমান্ড যা বিল্ডও চালায়।
dobey

আমি ধারাবাহিকভাবে পাইথন সেটআপ.পি বিল্ড চালাতে সক্ষম হয়েছি। সুতরাং, এখন আমি কী কেবল টেস্ট.ডেস্কটপ ফাইলটিকে ~ / .local / শেয়ার / অ্যাপ্লিকেশনগুলিতে সরাতে পারি এবং আমি দ্রুত চালানোর সময় অগ্রগতি বারটি কেবল প্রদর্শিত হওয়া উচিত?
কেভিন গুর্নে

আমি পাইথন প্রকল্পটি তৈরি করেছিলাম এবং তারপরে নির্মিত .ডেস্কটপ ফাইলটি ~ / usr / share / অ্যাপ্লিকেশনগুলিতে সরিয়ে নিয়েছি এবং তারপরে আপনার প্রস্তাবিত আপডেট-ডেস্কটপ-ডাটাবেস ran / .local / শেয়ার / অ্যাপ্লিকেশনগুলি চালিত করেছি, তবে এখন আমি কেবল একটি প্রশ্ন চিহ্ন পাচ্ছি অ্যাপ্লিকেশন আইকনটির জন্য এখানে প্রদর্শিত আছে: i.stack.imgur.com/RWYud.png
কেভিন গুর্নে

টেস্ট.ডেস্কটপ ফাইলটিতে আইকন = লাইনটি কী বলে?
dobey
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.