Qt简单记事本,QmainWindow状态栏打印行号
Qt simple note pad, print line number on status bar of QmainWindow
我从 Qt/C++ 创建了简单的记事本。当我点击文本区域的某处时,我想在 QMainWindow
的状态栏上打印行号,例如 Microsoft Windows
的记事本
我猜您正在使用 QTextEdit 作为 "editor" 小部件。
要获取光标在 QTextEdit 中的位置,您应该使用
row = myTextEdit->textCursor()->blockNumber();
和列
column = myTextEdit->textCursor()->positionInBlock();
然后只需使用这些信息编辑您的状态栏文本
您可以将文本区域的 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));
}
使用此代码ui->textEdit->document()->lineCount();
我从 Qt/C++ 创建了简单的记事本。当我点击文本区域的某处时,我想在 QMainWindow
的状态栏上打印行号,例如 Microsoft Windows
我猜您正在使用 QTextEdit 作为 "editor" 小部件。
要获取光标在 QTextEdit 中的位置,您应该使用
row = myTextEdit->textCursor()->blockNumber();
和列
column = myTextEdit->textCursor()->positionInBlock();
然后只需使用这些信息编辑您的状态栏文本
您可以将文本区域的 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));
}
使用此代码ui->textEdit->document()->lineCount();