Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QTimer不完全类型_C++_Qt - Fatal编程技术网

C++ QTimer不完全类型

C++ QTimer不完全类型,c++,qt,C++,Qt,我经常使用QTimer。但现在它正在失败,我不明白为什么: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QtGui/QPushButton> #include <QtGui/QTextEdit> #include <QtGui/QMessageBox> #include <QtCore/QCoreApplication> //

我经常使用QTimer。但现在它正在失败,我不明白为什么:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtGui/QPushButton>
#include <QtGui/QTextEdit>
#include <QtGui/QMessageBox>
#include <QtCore/QCoreApplication>

// Server
#include <sys/socket.h>
#include <netinet/in.h>

// Client
//#include <sys/socket.h>
//#include <netinet/in.h>
#include <netdb.h>


namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QPushButton *m_btn1;
    QPushButton *m_btn2;
    QTextEdit *m_txt1;
    QTextEdit *m_txt2;
    QTimer *timerDisplay;
    void UpdateDisplay();

private slots:
    void handleBtn1();
    void handleBtn2();
};

#endif // MAINWINDOW_H

你忘了:

#include <QTimer>
致:

然后在cpp文件中包含


另一个问题是UpdateDisplay()函数不是插槽,即使您试图将信号连接到它。因此,将该函数的声明移动到
专用插槽:
部分。

出现的另一个问题是回调:UpdateDisplay未在“插槽”中声明@jdl是的,您需要将其设置为插槽。更新答案。用
class
关键字声明对象有什么区别?在
类QTimer*timerDisplay
@SubinSebastian中,它是一个转发声明。它告诉编译器
QTimer
是类的名称。这允许我们省略
标题的包含。可能重复
#include <QTimer>
QTimer *timerDisplay;
class QTimer *timerDisplay;