ich habe eine Klasse von QTableWidget abgeleitet. In der mousePressEvent()-Methode möchte ich die Zelle (as QTableWidgetItem) unter der Maus ermitteln. Leider liefert mir die itemAt()-Methode stets einen Null-Pointer, obwohl sich eine Zelle unter der Maus befindet.
hier das Codefragment:
Code: Alles auswählen
void MinorTableWidget::mousePressEvent(QMouseEvent *_pEvent)
{
int iX = _pEvent->x();
int iY = _pEvent->y();
// alle mouseclicks verarbeiten
QTableWidget::mousePressEvent(_pEvent);
// find the row under the mouse
QTableWidgetItem *pTWI = itemAt(iX, iY); // <-- pointer stets null
...
Die Items werden im Dialog zuvor folgendermaßen initialisiert:
Code: Alles auswählen
void DlgMinor::FillTable()
{
...
// fill the table
m_ui.m_pTblMinors->setRowCount(s32RowCount);
// set all the items
for (iRow=.....
{
// set column 1
m_ui.m_pTblMinors->setCellWidget(iRow, 0, new QLabel(sMinor));
// set column 2
m_ui.m_pTblMinors->setCellWidget(iRow, 1, new QLabel(QString("%1").arg(cit->second.dblTakerate)));
// set column 3
sDesc = pMW->Minor2Description(cit->first);
m_ui.m_pTblMinors->setCellWidget(iRow, 2, new QLabel(q2Q(sDesc)));
}
...
} // DlgMinor::FillTable