Qt 4.8信号命名空间问题

时间:2017-03-15 23:10:33

标签: c++ qt

升级到Visual Studio 2015后,我遇到了编译一些旧代码的问题。 包含信号的类定义如下:

namespace aaa {
namespace bbb {

class MyCombo : public QComboBox
{
Q_OBJECT
public:

  MyCombo(QWidget* parent=0);

Q_SIGNALS:

  void mySignal(ccc::SomeType::SomeTypeValues);
};

} // bbb
} // aaa

SomeType在不同的头文件中定义,如下所示:

namespace aaa {
namespace ccc {

class SomeType
{
public:
  enum SomeTypeValues { SomeValue=0, SomeOtherValue };
};

} // ccc
} // aaa

当我编译代码时,我得到:

error C2327: 'QWidget::ccc': is not a type name, static, or enumerator

我尝试将信号签名更改为:

void mySignal(aaa::ccc::SomeType::SomeTypeValues);

这会编译,但是当发出信号时,连接到此信号的两个插槽都不会被触发。

0 个答案:

没有答案