所有
我正在开发应用程序并在应用程序内部,我需要在值更改时生成信号。为此,我更新了我的类MyDevice,以便在更改值数据时添加CumulChanged插槽。
MyDevice.cpp
void MyDevice::IncreaseSize(uint64_t size) {
Device->cumulsizeoperation += size;
emit CumulChanged();
}
void MyDevice::CumulChanged(){
qDebug() << "test";
}
我输入了IncreaseSize并发出了CumulChanged。
我在UI视图中使用此信号来获取更新进度条的信息。
我在UI.cpp中做了什么
connect(this, SIGNAL(MyDevice::CumulChanged()),
this, SLOT(onUpdateProgress()));
和onUpdateProgress也在UI类中定义
void UI::onUpdateProgress(){
Box->ProgressUpdate();
}
我的UI类定义如下:
UI.cpp
UI::UI(DeviceMngr& device) :
m_device(device)
和UI.h
class UI : public QTreeWidget
{
Q_OBJECT
public:
UI(DeviceMngr& device);
~ UI();
private:
DeviceMngr& m_device;
}
任何想法为什么没有触发onUpdateProgress?
由于
答案 0 :(得分:1)
我假设你在MyDevice.h中有这样的东西:
signals:
void CumulChanged();
然后删除:
void MyDevice::CumulChanged(){
qDebug() << "test";
}
并在UI构造函数中添加以下行:
connect(&device, &MyDevice::CumulChanged, this, &UI::onUpdateProgress);