Всем привет! Столкнулся с такой трудностью:
Написал свой виджет, переопределил в нем метод paintEvent():
class My_PushButton : public QPushButton
{
//какой то код
};
Хочу к этому виджету применить стили прописанные в файле style.qss
И вот ни в какую не получается. Не применяются стили к виджету, только к собственному, ко всем остальным применяются.
через setObjectName задал имя, и в стилях пробовал по разному прописывать:
#mybutton
My_PushButton#mybutton
QPushButton#mybutton
QPushButton>My_PushButton#mybutton
QPushButton My_PushButton#mybutton
Ни один из вышеприведенных вариантов не сработал. Подскажите как правильно устанавливать селекторы, к собственным виджетам
Вольный перевод официальной документации:
Таблицы стилей Qt Style Sheets используют метод QObject::className()
для определения типа селектора. Для виджета внутри пространства имён этот
метод возвращает значение <namespace>::<classname>
, которое
конфликтует с принятым синтаксисом Sub-Controls. Для решения этой
проблемы необходимо заменить ::
на --
.
Пример:
namespace ns
{
class MyButton : public QPushButton
{
Q_OBJECT
public:
explicit MyButton(QWidget* parent = nullptr) :
QPushButton(parent)
{
qDebug() << tr("constructor ns::MyButton() done.");
}
};
const QString mybuttonStyle()
{
return QString("ns--MyButton { background-color: yellow; color: red }");
}
}
int main(int argc, char* argv[])
{
QApplication a(argc, argv);
ns::MyButton b;
QObject::connect(&b, &ns::MyButton::clicked,
&a, &QApplication::quit);
b.setText(a.tr("MyButton"));
b.setStyleSheet(ns::mybuttonStyle());
b.show();
return a.exec();
}
Строка стиля для того же элемента, определённого без использования пространства имён, будет выглядеть так:
"MyButton { background-color: yellow; color: red }"
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня приложение с картой, при нажатии на карту я рисую Waypoint и сохраняю его в мой struct WaypointData
Подскажите, пожалуйста, есть ли у двумерного vector'а ограничение по размеруИ, если да, то какое оно в обе стороны
Итак имеем функцию GetAdaptersAddresses, которая возвращает список сетевых интерфейсов в системеОписание ф-ции: