本文整理汇总了C++中QColorDialog::connect方法的典型用法代码示例。如果您正苦于以下问题:C++ QColorDialog::connect方法的具体用法?C++ QColorDialog::connect怎么用?C++ QColorDialog::connect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QColorDialog
的用法示例。
在下文中一共展示了QColorDialog::connect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: editorEvent
bool DynamicObjectItemDelegate::editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem&, const QModelIndex& index)
{
if (event->type() == QEvent::MouseButtonRelease)
{
auto* node = (DynamicObjectModel::Node*)index.internalPointer();
if (!node)
{
return false;
}
if (node->onClick && index.column() == 1)
{
QWidget* widget = qobject_cast<QWidget*>(parent());
QPoint pos = widget->mapToGlobal(QPoint(static_cast<QMouseEvent*>(event)->x(), static_cast<QMouseEvent*>(event)->y()));
node->onClick(widget, pos);
return true;
}
if (index.data().type() == QMetaType::QColor)
{
QColorDialog* dialog = new QColorDialog(index.data().value<QColor>());
dialog->setModal(true);
auto old_color = index.data().value<QColor>();
dialog->connect(dialog, &QColorDialog::rejected, [model, index, old_color]{
model->setData(index, old_color);
});
dialog->connect(dialog, &QColorDialog::currentColorChanged, [model, index, dialog]()
{
QColor color = dialog->currentColor();
Lumix::Vec3 value;
value.x = color.redF();
value.y = color.greenF();
value.z = color.blueF();
model->setData(index, color);
});
dialog->show();
}
else if (index.data().type() == QMetaType::Bool)
{
model->setData(index, !index.data().toBool());
return true;
}
}
return false;
}