通过QString元素连接时发生QT错误

通过QString元素连接时发生QT错误,qt,signals,qstring,Qt,Signals,Qstring,我正在关注其他问题中发布的一些代码,关于如何通过信号和插槽连接父母和远方孩子之间的状态栏 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ... connect(myCanvas,SIGNAL(mouseMoved(QString)), this,slot(setStatusBar(QString))); ... } 在类主窗口中的某个位置,以下内容被声明为公共插槽: void MainWind

我正在关注其他问题中发布的一些代码,关于如何通过信号和插槽连接父母和远方孩子之间的状态栏

MainWindow::MainWindow(QWidget *parent) :
  QMainWindow(parent)
{
...
connect(myCanvas,SIGNAL(mouseMoved(QString)),
        this,slot(setStatusBar(QString)));
...
}
在类主窗口中的某个位置,以下内容被声明为公共插槽:

void MainWindow::setStatusBarText(const QString& text) {
statusBar()->showMessage(text);
}
在myCanvas所属的类中声明信号:

signals:
void mouseMoved(const QString&);
void GraphicsView::mouseMoveEvent(QMouseEvent *mouseEvent)
{
 ...
     emit mouseMoved(QString("("+QString::number(mouseMoveCatch.x())+";"
        +QString::number(mouseMoveCatch.y())+")"));
 ...
 }
并发出信号:

signals:
void mouseMoved(const QString&);
void GraphicsView::mouseMoveEvent(QMouseEvent *mouseEvent)
{
 ...
     emit mouseMoved(QString("("+QString::number(mouseMoveCatch.x())+";"
        +QString::number(mouseMoveCatch.y())+")"));
 ...
 }
我确信QString被适当地包括在内。但是当我编译时,我在连接行上得到一个错误,说“QString不引用值”。
我不知道这是什么意思。谢谢你的帮助

您有一个案例错误

connect(myCanvas,SIGNAL(mouseMoved(QString)),
    this,slot(setStatusBar(QString)));

你应该使用
SLOT
,而不是
SLOT

你需要在你的连接线路中大写
SLOT
。Grrrr发布这个消息我觉得很愚蠢。谢谢。(尽管我的代码仍然不起作用)如果使用Qt5,可以通过使用新的连接语法来避免这种错误:
connect(myCanvas,&GraphicsView::mouseMoved,this,&MainWindow::setStatusBarText)我试过了,但是(使用5.2)它给出了一个巨大的错误列表:事实上,我又试了一次,发现新的语法非常有效。我想我在那里也打错了。谢谢!