내 textbrowser에서 이미 mousePress를 구현했으며 클릭하면 줄 번호가 발견되었습니다. 이제 내가 클릭 한 위치, 즉 배경색을 변경하여 강조하고 싶습니다. 나는 선이 블록과 다르다는 것을 알았다. 다행히도 내 텍스트에서 한 줄은 하나의 블록입니다. 그래서 다음과 같이 나열된 블록 형식을 커서로 조작하는 것입니다.QTextBrowser : 클릭 한 선을 강조 표시하는 방법
QTextCursor cur = mytextBrowser->textCursor();
QBlockFormat f;
f.setBackground(Qt::red);
cur.selection(QTextCursor::BlockUnderCursor);
cur.setBlockFormat(f);
cur.setPosition(startPos);//I calculate this startPos before. It's where the cursor should be
mytextBrowser->setTextCursor(cur);
그러나 결과는 이상합니다. 처음 텍스트를 클릭하면 아무 일도 일어나지 않으며 때로는 단어를 선택할 수도 있습니다. 그런 다음 다시 클릭하면 이전 줄과 위 줄이 강조 표시됩니다. 왜 이런 일이 일어 났는지 나는 이해하지 못한다. 아무도 내게 몇 가지 해결책을 줄 수 있습니까? 감사.
감사합니다. 사실 나는 당신이 준 것과 같은 방식으로 사용했습니다. 실제 코드는 인터넷이없는 컴퓨터에 있기 때문에 오타입니다. 따라서 수동으로 입력해야합니다. 어쨌든,이 방법에서 문제는 내가 5 행을 클릭 할 때 응답이 없다는 것입니다. 그러나 다음에 다른 선을 클릭하면 선 5가 강조 표시됩니다. 왜 저에게 말해 주시겠습니까 ?? – TonyLic
기본적으로 올바른 대답입니다. 하지만 추가 하이라이트 발생할 수 있으므로 "ui-> textBrowser-> setTextCursor (cur)"필요하지 않습니다 생각합니다. 또한, 내 프로그램에서, 나는 클릭 한 위치에서 커서 위치를 계산하고 setCursorPosition을 사용한다. 어쨌든, 고마워! – TonyLic