رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران
  • 0
GornerLabo

نمایش رشته با استفاده از QTimer برای مدتی مشخص


سوال

ارسال شده در (ویرایش شده)

سلام و خسته نباشید. من یه رشته ای رو برای اطلاع به کاربر در برنامه  میخواستم نمایش بدم. این رشته باید پشت سرهم و با اختلاف 1 ثانیه ای نمایش داده بشه. بعد این نمایش میخواستم تایمر متوقف شه . با کلاس تایمر تونستم با اتصال سیگنال timeout به اسلاتی از برنامه این کار رو انجام بدم اما اسلات بعد زمان تعیین شده مرتبا تکرار میشد. طبق مثال زیر عمل کردم. لطفا راهنمایی کنید ممنون.


#include <QTimer>

class ShowString: public QObject
{
    Q_OBJECT
private:
    QTimer *timer;
public:

public slots:
    void show();
};
#include "showstring.h"

ShowString::ShowString()
{
    timer = new QTimer(this);
    connect(timer,SIGNAL(timeout()),this,SLOT(show()));
    timer->start(1000);
}

void ShowString::show()
{
    //my 3 line strings 

}

 

ویرایش شده در توسط GornerLabo
  • تشکر شده 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

3 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

  • 0

یه جوابی گرفتم با این روش:

اگه در کلاسمون به عنوان مثال دو اسلات تعریف کنیم و کاری که میخواییم رو انجام بدیم در اسلات ها تعریف کنیم و جایی که میخواییم به نوبت و با تایم مشخص اجرا بشن باید از این روش استفاده کنیم:

QTimer::singleShot(1000,this, SLOT(slotFunction1()));
QTimer::singleShot(2000,this, SLOT(slotFunction2()));

دوستان اگه روش بهتری هم داشتند میتونن اینجا معرفی کنند . ممنون

  • تشکر شده 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

این تکنیک پایین هم میشه استفاده کرد

QTimer::singleShot(1000, [this]() {
        //code 1
    } );
QTimer::singleShot(2000, [this]() {
        //code2
    } );

 

  • تشکر شده 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

سلام

شما می‌تونید از، متد sleep از کلاس QThread و حلقه‌ی while استفاده کنید.

  • پسندیدن 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×