Qt простой блокнот, выведите номер строки в строке состояния QmainWindow

Я создал простой блокнот из Qt / C ++. Я хочу напечатать номер строки в строке состояния QMainWindow когда я нажимаю где-нибудь в текстовой области, как блокнот Microsoft Windows

Строка состояния с номером строки

0

Решение

Вы можете подключить 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));
}
2

Другие решения

Я предполагаю, что вы используете QTextEdit в качестве виджета «редактор».

Чтобы получить, где находится курсор в вашем QTextEdit, вы должны использовать

row = myTextEdit->textCursor()->blockNumber();

и для колонны

column = myTextEdit->textCursor()->positionInBlock();

Затем просто отредактируйте текст строки состояния с помощью этой информации

0

По вопросам рекламы [email protected]