我想在Qt中製作一個程序來逐個添加點,而不是一次添加點。要做到這一點,我需要使用QThread,或者我可以使用QTimer?Qt用QThread或QTimer逐個添加點?
-4
A
回答
0
它可以使用QTimer
完成,如果它是時間依賴的(如每1秒),那麼它的路要走。只需要創建一個定時器,其timeout
信號連接到您的slot
,它應該工作就像一個魅力
0
你需要創建一些類,從QObject
繼承:
class QTimer;
class QList;
class Test_Timer : public QObject
{
Q_OBJECT
public:
explicit Test_Timer(QObject *parent = 0);
~Test_Timer();
private:
QList<QPoint> *lst;
QTimer *timer;
public slots:
void addPoint();
};
好了,現在我們有QTimer
事件timer
變量,lst
用於處理您的計時器事件的商店QPoint
和addPoint()
插槽。
在構造函數中,初始化類的成員,與當前類插槽連接定時器的插槽,以期爲500ms啓動定時器:
Test_Timer::Test_Timer(QObject *parent) : QObject(parent)
{
lst = new QList<QPoint>;
timer = new QTimer;
connect(timer, SIGNAL(timeout()), this, SLOT(addPoint()));
timer->start(500);
}
插槽用於添加點可能是這個樣子:
void Test_Timer::addPoint()
{
static int number = 0;
if (lst->size() < 10) {
lst->append(QPoint(0, number++));
qDebug() << lst->size();
} else {
timer->stop();
deleteLater();
}
}
畢竟不記得免費資源:
Test_Timer::~Test_Timer()
{
lst->clear();
delete lst;
if (timer->isActive())
timer->stop();
delete timer;
}
我認爲是這個例子會對你有所幫助。
+1
這是猜測中的一次奇妙嘗試,但實際上,您不應該鼓勵那些提出這些模糊問題的海報。 –
+0
@Kuba Ober是的,這是真的不清楚 –
相關問題
- 1. 使用QTimer函數? [Qt]
- 2. QTimer動畫在QT
- 3. 公開QTimer。 (Qt,C++)
- 4. 我怎樣才能QTimer與QT QMainWindow QTimer(QTimer與QTWidget但不QMainWindow)
- 5. 如何在使用QWaitCondition的QThread中使用QTimer? (pyside)
- 6. Qtimer不會超時QT,C++
- 7. 使用qtimer和qthread的邏輯有何缺陷?
- 8. 逐個添加按鈕
- 9. Qt,如何暫停QThread
- 10. 從QThread類監視Qt GUI
- 11. QT - 逐步添加小部件到水平佈局
- 12. Qt從QThread下載文件基於Qt示例不起作用
- 13. QTimer with asio :: io_service.poll_one()或poll()
- 14. QTime或QTimer等待超時
- 15. 我想逐行添加兩個文件?
- 16. Dynamicaly在DIV中逐個添加圖像
- 17. 將字符逐個添加到TMemo
- 18. 如何在QT中停止qThread
- 19. 來自非Qt線程的QThread :: getCurrentThread()
- 20. 使用scrapy將itemloader逐項添加到xml或csv
- 21. 在點擊添加或DIV
- 22. 與行添加逐列使用dplyr
- 23. Qt:添加poppler庫
- 24. (Qt)Qtimer不起作用。我錯過了什麼細節?
- 25. 在Qt中使用QTimer在按鈕上暫停功能按下
- 26. 使用Qt的QTimer函數在OpenGl中製作動畫
- 27. Qt C++ QTimer不會調用處理程序
- 28. 點或箭頭上的Qt
- 29. 逐步加載和添加圖像
- 30. 如何添加一個包到Qt
你能告訴我們你到目前爲止做了什麼嗎? –
我只做了一次加分。 – Ionela
什麼是「積分」?多少,爲什麼不「一次全部」? – JeffRSon