Squish 中看不到公共插槽

问题描述


我有一个用 Qt 编写的小应用程序,其中 MainWindow 类有 2 个公共插槽,即:
class MainWindow : public QMainWindow
{
    Q_OBJECT
.
.
.
.
public slots:
    quint8 GetColorCode();
    QString GetRGBColorCode();
.
.
.
};

根据 Squish 文档,可以直接从 Squish 环境访问带有 Q_PROPERTY 宏的公共插槽、信号和属性。插槽和信号出现在 Squish IDEs 方法列表窗口下。 但不幸的是,我无法在 Squish IDE 方法列表中看到上述方法。 有没有什么特定的方法可以让 Squish 使用公共插槽?

问候,
比卡什

解决方法

Qt 的 Squish 仅公开“公共”API。您必须公开所需的插槽。

作为测试,我添加了...

public slots:
    quint8 GetColorCode();
    QString GetRGBColorCode();

...到squish_dir/examples/qt/addressbook/mainwindow.h,然后...

quint8 MainWindow::GetColorCode()
{
    return 3;
}


QString MainWindow::GetRGBColorCode()
{
    return QString("3");
}

...到squish_dir/examples/qt/addressbook/mainwindow.cpp,编译示例并加载到Squish中。

随后在“应用程序对象”视图中选择 MainWindow 对象时,“方法”视图显示了这两种方法。