當用戶QTextBrowser在我的應用程式中滾動 a時,我想檢索他們滾動到的檔案中的位置(檔案中的偏移量,而不是 GUI 位置。)
如果我能讓游標跳到那個位置,我就可以得到QTextCursor.position(). 但是我沒有看到讓游標跳轉到瀏覽器中可見位置的方法。當我滾動時,游標停留在原處。
uj5u.com熱心網友回復:
我不完全理解你的問題的描述,但也許你可以通過呼叫https://doc.qt.io/qt-來確定可見區域開頭和結尾的游標(即文本檔案中的位置)5/qtextedit.html#cursorForPosition
QRect rect = textBrowser->rect();
QTextCursor firstVisible = textBrowser->cursorForPosition(rect.topLeft());
QTextCursor lastVisible = textBrowser->cursorForPosition(rect.bottomRight());
我還沒有測驗過,但我想你明白了。也許您需要使用 rect oftextBrowser->viewport()而不是 rect textBrowser。您需要對此進行一些試驗,以找到適合您的方法。
uj5u.com熱心網友回復:
根據 VK 的回答,這是我在 Python 中的解決方案:
browserRect = self.mainText.rect()
newCursor = self.mainText.cursorForPosition(browserRect.topLeft())
self.mainText.setTextCursor(newCursor)
textPos = mainText.textCursor().position()
實際上,僅僅使用QPoint(0,0)可能同樣有效,因為瀏覽器矩形的左上角非常接近 (0,0)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345123.html
標籤:qt 文本浏览器 qtextcursor
