【发布时间】:2013-05-31 14:18:25
【问题描述】:
我在 ROS 节点中使用 Qt 代码。我在课堂上声明了一个 static 函数setLabel()。这个函数的作用是把一张图片放到一个QLabel中。现在,我想在使用信号/插槽连接单击按钮时调用此函数。请告诉我应该在问号的地方放什么。
class ImageDisplay: public QObject
{
Q_OBJECT
public slots:
void setLabel();
public:
static void imageCallback( );
};
void ImageDisplay::setLabel()
{
QLabel* selectLabel= new QLabel();
selectLabel->setText("hi");
selectLabel->show();
}
void imageDisplay::imageCallBack()
{
ImageDisplay obj;
QObject::connect(selectButton, SIGNAL(clicked()),&obj, SLOT(setLabel()));
}
【问题讨论】:
-
我会改写:你正在用什么版本的 Qt 编译?
-
我正在使用 qt 4。我已经尝试过 QObject::connect(selectButton, SIGNAL(clicked()),this, SLOT(setLabel()))。但后来我得到一个错误“'this' is available for static member functions”
-
@NikosC.- 是的,我早些时候看到了那个帖子,但我真的不明白。就我而言,问题是我在 ROS 中使用 QT 代码,所以我无法使用“this”
-
我尝试使用 QObject::connect(selectButton, SIGNAL(clicked()),STATIC_SLOT(setLabel()));但后来我收到错误“错误:‘STATIC_SLOT’未在此范围内声明”
-
您对答案有什么不明白的地方?它给了你一个明确的答案:“不,这是不允许的。”。
标签: qt qt-creator