QWidget を継承して、TaskBox という名前のクラスを作成しました。
TaskBox に QGridLayout を適用しました。
レイアウトは複数の QLabels で構成されています。
スタイル シートを設定して、TaskBox の背景色を変更しました。
次のようになります。
これは私が欲しいもので、私はそれに満足しています。
問題は、TaskBox クラスに Q_OBJECT マクロを追加したいということです。(シグナルとスロットを使用する必要があるため)
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)) + ");");
}
};
何が起こっているのか理解できません。
ご協力いただきありがとうございます。