English 中文(简体)
似乎在Qt app[复制]中没有得到承认的排位
原标题:Slot seemingly not recognized in Qt app [duplicate]
  • 时间:2009-09-08 16:22:53
  •  标签:

我最近一直在学习C++和Qt4,但我打着一个 st脚石。

我有以下类别和执行:

class Window : public QWidget
{
public:
    Window();

public slots:
    void run();

private:
    //...
};

以及

Window::Window()
{
    //...

    connect(runBtn,SIGNAL(clicked()),this,SLOT(run()));

    //...
}
Window::run()
{
    //...
}

However, when I attempt to build 以及 run it, although it builds just fine, it immediately exits out with the message

Object::connect: No such slot QWidget::run()

除非我错了, 标记似乎并不承认<代码>run()。

谁能提供帮助?


<>Update:

现行法典是:

class Window : public QWidget
{
    Q_OBJECT
public:
    Window(QWidget *parent = 0);

public slots:
    void run();

private:
    //...
};

以及

Window::Window(QWidget *parent) : QWidget(parent)
{
    //...

    connect(runBtn,SIGNAL(clicked()),this,SLOT(run()));

    //...
}
Window::run()
{
    //...
}

该方案仍然“未具体完成”,但不再告诉我,没有像<代码”这样的东西。 QWidget:run()

最佳回答

你显然忘记了你温得阶级的Q_OBJECT宏观吗?

class Window : public QWidget
{
Q_OBJECT
public:
    Window()
...
问题回答

我也存在这一问题,无法在线找到任何帮助。 我发现,在重新编造之前,我正在着手删除 mo* 档案,并且正在使用旧的 mo文档来创建可起诉的档案。 这使委员会无法了解我所编的新位置。 我将核实,如果所有这些建议都失败的话。

有时最简单的解决办法是最佳解决办法......

http://code.runBtn? 如果它是作为自备文件的一部分创立的,请打电话setupUi(? 如何创建你的窗口类别? 您似乎略去了一些代码(/...),这些代码可能是错误之处。

我可以提出最佳建议,试图把你的问题减少到一个非常小的汇编例子。 这有两个原因:

  1. It helps you diagnose the problem, since there ll be less code to look at.
  2. If you still need our help, it ll help us since we will have a complete codebase we can download, compile and debug. Often the problem is not where you think it is.

希望这一帮助。

在连接点时,不要像布特恩这样的眼光——正如另一个答案之一所暗示的那样。

使用断点检查坠机发生地点。





相关问题
热门标签