首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt和C++如何共享类中的项

Qt和C++如何共享类中的项
EN

Stack Overflow用户
提问于 2018-07-09 17:45:06
回答 1查看 78关注 0票数 0

我的问题是:我使用了一个由Qt制作的例子作为教育(它是一个发送和接收串行数据的终端)。我需要在一个类中内建的函数中创建一个QTimer,并在另一个类中内建的另一个函数中停止它。Qtimer显然在Timer所在的类中声明的函数中没有问题;但在为另一个类构建的类中它仍然是未知的。我该怎么解决呢?

EN

回答 1

Stack Overflow用户

发布于 2018-07-09 17:57:47

您可能希望使用Qt信号/插槽系统。然后你可能会有类似这样的东西:

代码语言:javascript
复制
class A : public QObject
{
Q_OBJECT
//...
public slots:
    stopTimerHandler() {timer.stop();}
private:
    QTimer timer;
};

class B : public QObject
{
Q_OBJECT
//...
private:
    stopTimer() {emit stopTimerSig();}
signals:
    stopTimerSig();
};

// somewhere
A a;
B b;
connect(&b, SIGNAL(stopTimerSig()), &a, SLOT(stopTimerHandler())); // old connect version
// or ( ty @eyllanesc for the new syntax ) 
QObject::connect(&b, &B::stopTimerSig, &a, &A::stopTimerHandler); // qt5 

B发出A监听的信号,当A接收到信号时,A停止计时器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51242534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档