通过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)它给出了一个巨大的错误列表:事实上,我又试了一次,发现新的语法非常有效。我想我在那里也打错了。谢谢!