我从 Qt/C++ 创建了简单的记事本。QMainWindow
当我单击文本区域的某个位置时,我想在状态栏上打印行号,例如 Microsoft Windows 的记事本
问问题
745 次
2 回答
3
您可以将cursorPositionChanged()
文本区域的信号连接到您的自定义插槽QMainWindow
:
// the connection
connect(ui->plainTextEdit, SIGNAL(cursorPositionChanged()), this, SLOT(showCursorPos()));
// your custom slot
void MainWindow::showCursorPos()
{
int line = ui->plainTextEdit->textCursor().blockNumber()+1;
int pos = ui->plainTextEdit->textCursor().columnNumber()+1;
ui->statusBar->showMessage(QString("Ln %1, Col %2").arg(line).arg(pos));
}
于 2017-12-19T11:27:12.300 回答
0
我猜你正在使用 QTextEdit 作为“编辑器”小部件。
要获取 QTextEdit 中的光标在哪里,您应该使用
row = myTextEdit->textCursor()->blockNumber();
和列
column = myTextEdit->textCursor()->positionInBlock();
然后只需使用这些信息编辑您的状态栏文本
于 2017-12-19T11:26:48.833 回答