2011-08-23 4 views
0

포인트가있는 상황에 맞는 메뉴를 만드는 슬롯이 있습니다. 그러나 어떤 방법을 사용하든 관계없이 포인트 -> itemAt (pos)는 항상 0을 반환합니다. 테이블 행/열 위치를 인쇄 할 수있는 방법이 있습니까? 일부 오프셋을 리버스 엔지니어링 할 수 있습니까?QTableWidgetItem.itemAt (pos)는 contextMenu 요청시 항상 0을 반환합니다.

나는 가능한 모든 순열을 시도 항상 실행 '어떤 항목'....

void test::newContextMenu(const QPoint& point) 
{ 
QPoint pos = table_->viewport()->mapFromGlobal(point); //also tried 
//table_->mapFromGlobal(point), table_>viewport()->mapToGlobal(point) 
//table_->mapToGlobal(point), and QCursor::pos() 

QAction* action tableMenu_->exec(pos); 
if(action == XX) 
{ 
QTableWidgetItem* item = table_->itemAt(pos); 
if(!item) 
{ 
///no item 
} 
.... 
} 

답변

2

itemAt에 대한 귀하의 호출은()에 위젯 로컬 좌표 를 사용한다, 아니 포지 글로벌 좌표입니다.

+0

감사합니다. 너무 단순하기 때문에 몇 시간을 낭비했습니다. 심지어 pos에 대해 +/- 500 오프셋을 반복하고 리턴 된 항목은 여전히 ​​0이 아닌 값을가집니다. – jim

+1

SO @jim에 오신 것을 환영합니다! 질문에 답이 나오면 수표를 클릭하여 승인 된 답을 표시하십시오. –

관련 문제