状态栏的QT连接功能

问题描述 投票:0回答:1

我正在尝试在 QT c++ 中制作一个类似记事本的应用程序,现在我正在尝试实现一个简单的状态栏,告诉用户光标的行和列。

我一直在使用这样的连接功能:

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)

{
    connect(ui->textEdit, SIGNAL(cursorPositionChanged()), this, SLOT(MainWindow::showCursorPosition()));
.
.
}

我的 showCursorPosition 方法定义如下:

void MainWindow::showCursorPosition(){
    int line = ui->textEdit->textCursor().blockNumber()+1;
    int column = ui->textEdit->textCursor().columnNumber()+1;
    ui->statusBar->showMessage(QString("Line %1  Column %2").arg(line).arg(column));
}

该方法有效,我非常确定,因为我从构造函数中调用了它,并且它在状态栏中显示“第 1 行第 1 列”。

但是连接功能似乎无法正常工作,我似乎无法弄清楚我做错了什么。

qt text-editor qt-connection
1个回答
1
投票

旧的 (

Qt4
) 语法不理解
C++
命名空间。将
connect
调用更改为...

connect(ui->textEdit, SIGNAL(cursorPositionChanged()),
        this, SLOT(showCursorPosition()));

或者,如果您使用

Qt5
,您应该使用更新的信号/槽语法...

connect(ui->textEdit, &QTextEdit::cursorPositionChanged,
        this, &MainWindow::showCursorPosition);
© www.soinside.com 2019 - 2024. All rights reserved.