Я унаследовал QWidget, чтобы создать класс под названием (скажем так..) TaskBox.
Я применил QGridLayout к моему TaskBox.
Макет состоит из нескольких QLabels.
Я изменил цвет фона TaskBox, установив для него таблицу стилей.
Теперь это выглядит так:
Это то, что я хочу, и я доволен этим.
Проблема в том, что я хочу добавить макрос Q_OBJECT в класс TaskBox. (потому что мне нужно использовать сигналы и слоты)
После добавления макроса Q_OBJECT мои объекты TaskBox становятся такими:
Похоже, что таблица стилей разбита на ячейки в QGridLayout.
Вот мой класс TaskBox:
class TaskBox : public QWidget{
Q_OBJECT
public:
QLabel * title;
QLabel * description;
QGridLayout * layout;
TaskBox(){
layout = new QGridLayout();
setRandomColor(); //Function is available below
title = new QLabel("Something");
title->setStyleSheet("color:white;");
description = new QLabel("Something again");
description->setStyleSheet("color:white;");
layout->addWidget(title, 0,0);
layout->addWidget(description,1,0);
layout->setColumnStretch(0,2);
layout->setColumnStretch(1,1);
setLayout(layout);
}
void setRandomColor(){
setStyleSheet("border-radius: 5px;background-color:rgb(" + QString::number((rand() % 255)) + "," + QString::number((rand() % 255)) + "," + QString::number((rand() % 255)) + ");");
}
};
Я не понимаю, что происходит.
Спасибо за помощь!