تغيير خلفية علامات تبويب QTABBAR المفهرسة باستخدام أوراق الأنماط

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

  •  21-09-2019
  •  | 
  •  

سؤال

باستخدام أوراق أنماط QT ، هل من الممكن تعيين لون خلفية مختلف لكل علامة تبويب في QTABBAR التي تحتوي على 4 علامات تبويب أو أكثر؟

يحتوي تطبيق QT الخاص بي على 6 علامات تبويب أسفل شريط القائمة. أرغب في تغيير ألوان الخلفية إلى 6 ألوان مختلفة باستخدام أوراق الأنماط.

يبدو أن القضايا تقف في طريقي:

  • لا يمكنني سوى تصميم علامات التبويب "الأولى" و "الوسط" و "الأخيرة" باستخدام بناء جملة ورقة الأنماط النقية (وبالتالي لماذا أقول "4 أو أكثر" علامات التبويب).

  • لا أعتقد أن علامات التبويب الفردية هي مصغرة للأطفال من QTABBAR التي يمكنني الوصول إليها. الفكرة هي أنه يمكنني بعد ذلك إرفاق خاصية بكل علامة تبويب طفل يمكنني الإشارة إليها في ورقة الأنماط.

علي سبيل المثال:

// Stylesheet
QTabBar::tab[index="3"] {
   background: blue;
}

// Code
QTabBar* bar = new QTabBar;
int index = bar->addTab("Tab 1");
QWidget* tab1; //= ????
tab1->setProperty("index", index);

أي مساعدة سيكون محل تقدير كبير. شكرًا.

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

المحلول

علامات التبويب الفردية هي هياكل بدلا من الكائنات. ثم يتم استخدام هذه الهياكل على الرسم. انظر مصدر QT لمزيد من التفاصيل.

لقد أجريت تجربة مع هذا ولا يمكنني العثور على طريقة للوصول إلى فهرس مباشر ، كما أشرت. للإشارة إلى ذلك ، حاولت استخدام خصائص مثل النص ، وملمة الأدوات ، وماذا عن ذلك ، لكن لم أستطع الوصول إلى أي منها من أوراق الأنماط ، لسوء الحظ.

أخشى أنني لا أعتقد أن ما تريد فعله ممكن بدون التصنيف الفرعي وتعديل أحداث الطلاء بنفسك.

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