特定の時間に何かをする必要があります。Android では AlarmManager を使用してこれを行いますが、qt ではその方法がわかりません。私のqtの経験では、アプリケーションを閉じるとQTimer::singleShotが停止しますが、アプリケーションを閉じた後に実行する必要があります。バックグラウンドでアプリケーションを実行しますが、開いているアプリケーション画面に自分のアプリケーションを表示したくありません。
助けてくれてありがとう。
これを処理するクラスを作成できます。以下の例では、「WindowManager」クラスとサブクラス化された QMainWindow を使用していますが、もちろん任意の QWidget を使用できます。
「うーん」
#include <QtGui>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow() {}
signals:
void startTimer(int);
protected:
void closeEvent(QCloseEvent *event)
{
event->setAccepted(false);
startTimer(5000);
hide();
}
};
class WindowManager : public QObject
{
public:
WindowManager()
{
MainWindow *w = new MainWindow;
QTimer *timer = new QTimer(this);
connect(w, SIGNAL(startTimer(int)), timer, SLOT(start(int)));
connect(timer, SIGNAL(timeout()), w, SLOT(show()));
w->show();
}
};
「main.cpp」
#include <QtCore/QCoreApplication>
#include "wm.h";
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
WindowManager wm;
return a.exec();
}