Qt 稍后创建QScopedPointer的实例
例如,这里是我的代码Qt 稍后创建QScopedPointer的实例,qt,pointers,qscopedpointer,Qt,Pointers,Qscopedpointer,例如,这里是我的代码 QScopedPointer<QTimer> timer2(new QTimer); 在mainwindow.cpp中 如何使用?使用QScopedPointer的方法重置 timer2.reset(new QTimer()); 请尝试以下操作: // mainwindow.h class MainWindow : public QMainWindow { private: QScopedPointer<QTimer> timer2; }
QScopedPointer<QTimer> timer2(new QTimer);
在mainwindow.cpp中
如何使用?使用QScopedPointer的方法
重置
timer2.reset(new QTimer());
请尝试以下操作:
// mainwindow.h
class MainWindow : public QMainWindow
{
private:
QScopedPointer<QTimer> timer2;
};
// mainwindow.cpp
MainWindow::MainWindow()
:timer2(new QTimer)
{
}
或者,如果要在MainWindow
的任意成员函数中创建实例,请使用以下命令:
// mainwindow.cpp
void MainWindow::someFunction()
{
timer2.reset(new QTimer);
}
也值得回顾C++中的初始化列表和./p>< P>的文档。您在堆上分别创建
MainWindow
类的成员,而您只需将它们作为成员放入类中:
// interface
#include <QMainWindow>
#include <QTimer>
class MainWindow : public QMainWindow {
Q_OBJECT
QTimer m_timer;
public:
MainWindow(QWidget * parent = 0, Qt::WindowFlags flags = 0);
};
// implementation
MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags flags) :
QMainWindow(parent, flags),
m_timer()
{
...
}
你根本不需要这样做。只需将
QTimer
作为您的main窗口
类中的成员。您好,亲爱的RA。谢谢你的回复。为我工作!(+1,最好的答案是马克)(+1)你好,亲爱的埃西。谢谢
// mainwindow.cpp
void MainWindow::someFunction()
{
timer2.reset(new QTimer);
}
// interface
#include <QMainWindow>
#include <QTimer>
class MainWindow : public QMainWindow {
Q_OBJECT
QTimer m_timer;
public:
MainWindow(QWidget * parent = 0, Qt::WindowFlags flags = 0);
};
// implementation
MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags flags) :
QMainWindow(parent, flags),
m_timer()
{
...
}
// interface
#include <QMainWindow>
class MainWindowPrivate;
class MainWindow : public QMainWindow {
Q_OBJECT
Q_DECLARE_PRIVATE(MainWindow)
QScopedPointer<MainWindowPrivate> const d_ptr;
public:
MainWindow(QWidget * parent = 0, Qt::WindowFlags flags = 0);
}
// implementation
#include "MainWindow.h"
#include <QTimer>
class MainWindowPrivate {
public:
QTimer timer;
}
MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags flags) :
QMainWindow(parent, flags),
d_ptr(new(MainWindowPrivate())
{
Q_D(MainWindow);
d->timer.start( ... );
...
}