Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Lập trình giữ chậm vòng lặp trên QT?

  1. #1
    Ngày gia nhập
    01 2014
    Bài viết
    3

    Mặc định Lập trình giữ chậm vòng lặp trên QT?

    Hiện mình đang làm bài tập lập trình trên QT. Có vòng lặp và trong từng vòng lặp có gửi kết quả tính toán lên LineEdit để quan sát.
    Khổ một điều : kết quả tính toán nhanh quá nên k quan sát được cả quá trình trên LineEdit. Có cách nào để giữ chậm kết quả trong từng vòng lặp k ạ?

  2. #2
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Thì cứ đợi 1 khoảng rồi mới gửi kết quả một lần.
    Trong Qt có lớp QTimer có thể giúp được việc này. Sau một khoảng thời gian định trước nó sẽ gửi một signal, cứ tạo một slot xử lý cái signal này để làm công việc gửi kết quả là được.

  3. #3
    Ngày gia nhập
    01 2014
    Bài viết
    3

    Mình đã hiểu hướng xử lý của bạn.
    Tks bạn.
    Bạn có thể cho mình xin ví dụ về sử dụng QTimer được không?

  4. #4
    Ngày gia nhập
    11 2010
    Bài viết
    589

    Đây là reference của QTimer: https://qt-project.org/doc/qt-5/qtimer.html
    Đây là ví dụ: http://codeprogress.com/cpp/libraries/qt/qtClasses.php?item=QTimer

  5. #5
    Ngày gia nhập
    01 2014
    Bài viết
    3

    Tks. Cho mình hỏi thêm 1 câu:
    Có thể sử dụng QTime để tạo một bộ đếm thời gian k?
    mình muốn mô phỏng chuyển động của một vật

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    66

    Mặc định Lập trình giữ chậm vòng lặp trên QT?

    Được bạn à.
    Nhưng nếu bạn muốn mô phỏng chuyển động có thể dùng kết hợp time và timer.
    Timer dùng để cập nhật còn time (thời gian máy tính) dùng tính toán thời gian cho chuyển động.
    Tham khảo thêm:
    QTimer http://qt-project.org/doc/qt-5/timers.html
    QTime http://qt-project.org/doc/qt-5/QTime.html
    Ví dụ về đồng hồ của QT: http://qt-project.org/doc/qt-5/qtwid...k-example.html

  7. #7
    Ngày gia nhập
    12 2015
    Bài viết
    2

    anh cho em hỏi! với code nhu thế này mà tại sao lúc hiển thị, Qt chỉ hiển thị cho em có 3 hình ảnh là như thế nào?
    chính xác là nó chỉ hiển thị lần lượt có 3 hình ảnh trong khi em muốn nó phải là 7 hình ảnh chuyển động cách nhau 0,5 giây!

    QTimer::singleShot(500, this, SLOT( updateScreenShotLabel2()));
    QTimer::singleShot(460, this, SLOT( updateScreenShotLabel3()));
    QTimer::singleShot(450, this, SLOT( updateScreenShotLabel4()));
    QTimer::singleShot(470, this, SLOT( updateScreenShotLabel5()));
    QTimer::singleShot(480, this, SLOT( updateScreenShotLabel6()));
    QTimer::singleShot(460, this, SLOT( updateScreenShotLabel7()));



    void ScreenShot::updateScreenShotLabel7()
    {


    originalPixmap.load("C:/Qt/7.png");
    screenShotLabel->setPixmap(originalPixmap.scaled(screenShotLabel->size(),Qt::KeepAspectRatio,Qt::SmoothTransformati on));
    screenShotLabel->show();

    }

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn