今回は例として、enumの値を代入します。
設定の例
enum class ActionType {
Open,
Save,
Close
};
QPushButton* btn = new QPushButton("Open");
// enum → int にして保存
btn->setProperty("action", static_cast<int>(ActionType::Open));
取得の例
void MainWindow::onButtonClicked()
{
QPushButton* btn = qobject_cast<QPushButton*>(sender());
if (!btn) return;
ActionType action =
static_cast<ActionType>(btn->property("action").toInt());
switch (action) {
case ActionType::Open:
qDebug() << "Open";
break;
case ActionType::Save:
qDebug() << "Save";
break;
case ActionType::Close:
qDebug() << "Close";
break;
}
}
シグナルの接続
connect(btn, &QPushButton::clicked, this, &MainWindow::onButtonClicked);