QT学习中自己常犯的错误

来源:互联网 发布:hadoop windows 编辑:程序博客网 时间:2024/06/03 15:32

在工作当中,并不是经常使用QT,但是偶尔项目上还是要用,有些错误总是犯了又犯,现在整理如下:

1、信号和槽的参数一定要一致

      connect(clickTimer,SIGNAL(timeout()),this,SLOT(mouseClick()));

      如上所示:timeout()和mouseClick()的参数一定要一致,只要了解信号/槽机制就好理解了。


2、在QT中,双击鼠标的时候,如果不做其他处理,则在调用mouseDoubleClickEvent之前,会首先调用mousePressEvent,至于是哪个事件,需要程序员自己判断,一般采用定时器进行处理。


3、使用信号和槽的对象一定要继承自QObject,否则不能使用该机制,比如QGraphicsItem对象。可能会报如下类似错误:

         clickTimer=newQTimer(this);   

         error: no matching function for call to 'QTimer::QTimer(EMSRectItem*)'

    connect(clickTimer,SIGNAL(timeout()),this,SLOT(mouseClick()));
    error: 'connect' was not declared in this scope                                                                ^

         多重继承如下:

         classEMSRectItem:publicQObject,publicQGraphicsItem





原创粉丝点击