17 #include <QStringList>
18 #include <QApplication>
25 #define TR(id) OLocalizator::getString("TabPointsWidget", (id))
29 if (event->type() == QEvent::KeyPress)
31 QKeyEvent* keyEvent =
static_cast<QKeyEvent*
>(event);
32 if (keyEvent->key() == Qt::Key_Comma)
34 keyEvent =
new QKeyEvent(QEvent::KeyPress, Qt::Key_Period, Qt::NoModifier, 0, 0, 0,
".");
35 QApplication::sendEvent(
object, keyEvent);
39 return QStyledItemDelegate::eventFilter(
object, event);
43 : QTableWidget(parent), _listPoints(listPoints)
48 QStringList stringList;
49 stringList.append(
"X");
50 stringList.append(
"Y");
51 stringList.append(
"Z");
53 setHorizontalHeaderLabels(stringList);
55 setSelectionBehavior(QAbstractItemView::SelectRows);
70 setItem(row, 0,
new QTableWidgetItem((QString().setNum(
_listPoints[row]._x,
'f', 2))));
71 setItem(row, 1,
new QTableWidgetItem((QString().setNum(
_listPoints[row]._y,
'f', 2))));
72 setItem(row, 2,
new QTableWidgetItem((QString().setNum(
_listPoints[row]._z,
'f', 2))));
83 double x(0.), y(0.), z(0.);
87 for (
int row = 0; row < rowCount(); row++)
89 x = item(row, 0)->text().toDouble(&ok);
90 y = item(row, 1)->text().toDouble(&ok);
91 z = item(row, 2)->text().toDouble(&ok);
104 item(row, col)->text().toDouble(&ok);
109 item(row, col)->setText(QString().setNum(0.0,
'f', 2));
115 item(row, 0)->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
116 item(row, 1)->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
117 item(row, 2)->setFlags(Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsEnabled);
122 setItem(row, 0,
new QTableWidgetItem((QString().setNum(0.0,
'f', 2))));
123 setItem(row, 1,
new QTableWidgetItem((QString().setNum(0.0,
'f', 2))));
124 setItem(row, 2,
new QTableWidgetItem((QString().setNum(0.0,
'f', 2))));
129 QPoint point = mapFrom(
this, e->pos());
130 if ((point.x() >= 0) && (point.y() >= 0) && (point.x() <= width()) && (point.y() <= height()))
132 QPoint resPoint = QPoint(point.x(), point.y());
133 QTableWidgetItem* element = itemAt(resPoint);
136 int row = indexAt(resPoint).row();
137 row = row >= 0 ? row : 0;
138 row = row < rowCount() ? row : rowCount() - 1;
140 int col = indexAt(resPoint).column();
141 col = col >= 0 ? col : 0;
142 col = col < columnCount() ? col : columnCount() - 1;
144 QAction *insertLine = NULL, *appendLine = NULL, *deleteLine = NULL;
146 QMenu* pPopup =
new QMenu(
this);
148 insertLine = pPopup->addAction(
TR(
"id_insert_row_item"));
149 appendLine = pPopup->addAction(
TR(
"id_append_row_item"));
150 deleteLine = pPopup->addAction(
TR(
"id_delete_row_item"));
152 QAction* ret = pPopup->exec(mapToGlobal(point));
154 if (ret == insertLine)
161 else if (ret == appendLine)
163 setRowCount(rowCount() + 1);
164 int lastRow = rowCount() - 1;
169 else if (ret == deleteLine)
std::vector< TYPoint > TYTabPoint
Collection de TYPoint.
bool eventFilter(QObject *object, QEvent *event) override