كيفية تغيير أيقونة QPushbutton عندما يكون التركيز؟

StackOverflow https://stackoverflow.com/questions/1531062

  •  20-09-2019
  •  | 
  •  

سؤال

أنا أستخدم QPushbutton في تطبيق S60 QT.

أريد أن يتغير أيقونة الزر عند التركيز.

لقد حاولت هذا ...

navButton->setStyleSheet("background-image: url(c:/Data/navArrowsNotSelected.png);");
setStyleSheet("DoubleViewWidget QPushButton:focus {background-image: url(c:/Data/navArrowsSelected.png); border: 2px solid yellow}");

... لكن صورة الخلفية لا تتغير مع التركيز.

لقد جربت أيضا مناهج أخرى، باستخدام QPalette، وما إلى ذلك، ولكن لا يمكنك الحصول على هذا للعمل.

هل هناك طريقة لتحديد نمط التركيز على القطعة؟

...أم أن هناك طريقة أخرى للقيام بذلك؟

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

المحلول

لا يمكنك تعيين ورقة أنماط واحدة مباشرة على الزر، وواحد على القطعة الأصل. زر واحد سوف يفضل. جرب هذا:

 navButton->setStyleSheet("QPushButton { background-color:red; } QPushButton:focus { background-color:blue; }");

نصائح أخرى

لا أستطيع أن أقول أي شيء عن القيام بذلك من خلال STYLESHEET، ولكن يمكنك استخدام الأساليب التالية:

1) الفئة الفرعية QPUSHBUTTON، وإعادة التركيز و Focusoutevent (أعضاء محميين)

2) نهج آخر، هو أن تفعل "الفراغ qpushbutton :: installeventfilter (QOBJECT * FILDOBJ)" ON PUBLE BUTTOLSIONS (FILDOBJ ستنفذ معالجة الأحداث التركيز المخصصة)

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