سؤال

أنا أكتب برنامجا أساسيا في Python باستخدام وحدة PYQT4. أود أن أكون قادرا على استخدام أيقونات سمة نظام نظامي للأشياء مثل أيقونة مربع حوار التفضيل، لكن ليس لدي أي فكرة عن كيفية القيام بذلك. لذا فإن سؤالي هو، كيف يمكنك الحصول على موقع أيقونة، ولكن تأكد من التغييرات مع موضوع أيقونة النظام؟ إذا كان يهم، فأنا أقوم بتطوير هذا تحت Ubuntu 9.04، لذلك أنا أستخدم سطح مكتب جنوم.

هل كانت مفيدة؟

المحلول

لسوء الحظ، يبدو أن QT لا يدعم الحصول على أيقونات لموضوع معين. هناك طرق للقيام بذلك لكل من KDE و gnome.

الطريق KDE أنيق للغاية، مما يجعل من المنطقي بالنظر إلى أن كيو تي هي مجموعة أدوات KDE. بدلا من استخدام فئة Pyqt4.qtgui Qicon، يمكنك بدلا من ذلك استخدام Kicon Class Pykde4.kdeui. مثال على ذلك هو:

from PyKDE4.kdeui import *
icon = KIcon("*The Icon Name*")

انظر وثائق Pykde لهذا الفصل، هنا.

طريقة واحدة لاكتساب الدعم لهذا الغنم هي استخدام حزمة بيثون GTK. انها ليست لطيفة كما هي طريقة KDE، لكنها لا تعمل على الأقل. يمكن استخدامه مثل هذا:

from PyQt4 import QtGui
from gtk import icon_theme_get_default

iconTheme = icon_theme_get_default()
iconInfo = iconTheme.lookup_icon("*The Icon Name*", *Int of the icon size*, 0)
icon = QtGui.QIcon(iconInfo.get_filename())

انظر الوثائق ل أيقونة الفئة الموضوع و أيقونة معلومات المعلومات.

تحرير: شكرا لتصحيح Cesarb

نصائح أخرى

استخدم فئة Pykde4 Kicon:

http://api.kde.org/pykde-4.2-api/kdeui/kicon.html.

قضيت مبلغا كريما من البحث في هذا نفسي منذ وقت ليس ببعيد، وكان استنتاجي ذلك، لسوء الحظ، لا تقدم QT هذه الوظيفة في أزياء عبر منصة. من الناحية المثالية، سيكون لدى فئة QICON الإعدادات الافتراضية لفتح الملف، حفظ، "+"، "-"، تفضيلات، إلخ، ولكن بالنظر إلى أنه لا يتعين عليك الاستيلاء على الأيقونة المناسبة لبيئة سطح المكتب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top