QT中如何确定鼠标点击位置的行号?

时间:2022-11-22 09:25:56
在textedit中有多行内容,需要确定当鼠标点击某一行时返回改行的行号

3 个解决方案

#1



//当前光标
QTextCursor tc = pTextEdit->textCursor(); 
QTextLayout *pLayout = tc.block().layout();
//当前光标在本BLOCK内的相对位置
int nCurpos = tc.position() - tc.block().position();
int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();

#2


引用 1 楼 cai6811376 的回复:

//当前光标
QTextCursor tc = pTextEdit->textCursor(); 
QTextLayout *pLayout = tc.block().layout();
//当前光标在本BLOCK内的相对位置
int nCurpos = tc.position() - tc.block().position();
int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();

qt中这个也可以取太强大了

#3


引用 1 楼 cai6811376 的回复:

//当前光标
QTextCursor tc = pTextEdit->textCursor(); 
QTextLayout *pLayout = tc.block().layout();
//当前光标在本BLOCK内的相对位置
int nCurpos = tc.position() - tc.block().position();
int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();

学习了。

#1



//当前光标
QTextCursor tc = pTextEdit->textCursor(); 
QTextLayout *pLayout = tc.block().layout();
//当前光标在本BLOCK内的相对位置
int nCurpos = tc.position() - tc.block().position();
int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();

#2


引用 1 楼 cai6811376 的回复:

//当前光标
QTextCursor tc = pTextEdit->textCursor(); 
QTextLayout *pLayout = tc.block().layout();
//当前光标在本BLOCK内的相对位置
int nCurpos = tc.position() - tc.block().position();
int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();

qt中这个也可以取太强大了

#3


引用 1 楼 cai6811376 的回复:

//当前光标
QTextCursor tc = pTextEdit->textCursor(); 
QTextLayout *pLayout = tc.block().layout();
//当前光标在本BLOCK内的相对位置
int nCurpos = tc.position() - tc.block().position();
int nTextline = pLayout->lineForTextPosition(nCurpos).lineNumber() + tc.block().firstLineNumber();

学习了。