30/09/2018, 16:06

Thắc mắc về Qt Creator

Trong Qt em muốn tạo nhiều cửa sổ để chứa các câu hỏi trắc nghiệm thì phải sử dụng tool nào ạ, cách bắt đáp án đúng và tỉnh tổng các câu trả lời đúng của người dùng thì phải làm sao ạ.

Nguyễn Minh Dũng viết 18:18 ngày 30/09/2018

Câu hỏi của em mơ hồ quá, em có thể đưa ra ví dụ cụ thể bằng hình ảnh, hình vẽ để cho dễ hình dung không?

Các câu hỏi dưới đây không rõ ràng lắm.

tạo nhiều cửa sổ

chứa các câu hỏi trắc nghiệm

tool

cách bắt đáp án đúng

tỉnh tổng các câu trả lời đúng của người dùng thì phải làm sao ạ

Nguyễn Tuấn Tiến viết 18:08 ngày 30/09/2018

Giả sử bây giờ em tạo ra 1 chương trình trắc nghiệm bao gồm 20 câu hỏi, thì mình không thể viết hết 20 câu hỏi đó trong 1 tool được, ứng với mỗi 1 câu hỏi sẽ có 4 đáp án để chọn, sau khi làm hết 20 câu sẽ tiến hành xuất ra số câu người dùng đã trả lời đúng ra màn hình ak anh. Em dùng Radio Button để tạo ra 4 đáp án để chọn lựa nhưng không biết viết code tiếp theo như thế nào.

Nguyễn Tuấn Tiến viết 18:10 ngày 30/09/2018

Đây là hình ảnh ví dụ nè anh.

Nguyễn Minh Dũng viết 18:20 ngày 30/09/2018

thì mình không thể viết hết 20 câu hỏi đó trong 1 tool được

Khái niệm tool của em là gì?

ứng với mỗi 1 câu hỏi sẽ có 4 đáp án để chọn

Em dùng group để bọc lại 4 radio.

Em dùng Radio Button để tạo ra 4 đáp án để chọn lựa nhưng không biết viết code tiếp theo như thế nào.

Khi người dùng bấm ok thì em duyệt từng group. Mỗi group em lấy giá trị của radio được chọn. Kiểm tra xem giá trị đó có đúng không.

Nguyễn Minh Dũng viết 18:07 ngày 30/09/2018

Anh nghĩ em nên tạo ra một Class, mà trong đó có cấu trúc bao gồm 1 group, 4 hoặc n options bằng radio. Khi em muốn tạo một câu hỏi thì em sẽ truyền vào nội dung câu hỏi, 4 đáp án. @tranhuanltv có tài liệu qt nào làm cái này không, anh quên mất nguồn. @ngohuy có idea gì không

Nguyễn Tuấn Tiến viết 18:11 ngày 30/09/2018

Em muốn tạo 1 nút tiếp để nó tiến tới câu 2 thì làm sao anh

Nguyễn Minh Dũng viết 18:14 ngày 30/09/2018

Em tạo qt button là được rồi, khi bấm vào button đó thì em thực hiện ẩn cái câu hỏi 1, hiện câu hỏi 2 lên.

Nguyễn Tuấn Tiến viết 18:16 ngày 30/09/2018

Có thể chạy đồng hồ đếm ngược tính thời gian làm bài được không anh

Nguyễn Minh Dũng viết 18:21 ngày 30/09/2018

Có thể chạy đồng hồ đếm ngược tính thời gian làm bài được không anh

http://qt-project.org/doc/qt-4.8/widgets-analogclock.html

http://qt-project.org/doc/qt-4.8/widgets-digitalclock.html

Nguyễn Tuấn Tiến viết 18:22 ngày 30/09/2018

Anh có thể nói rõ hơn phần code 4 đáp án được không ạ

Nguyễn Minh Dũng viết 18:20 ngày 30/09/2018

Em tìm cách xử lý radio buttons trước. Radio button đi theo group, nếu radio button trong 1 group thì sẽ chỉ có một button được chọn tại một thời điểm.

Em lấy ra status của mỗi button hoặc đăng ký signal để bắt được sự kiện button status change để làm nhiều thứ hơn. Dùng method isChecked() để kiểm tra là button đó đã được chọn chưa.

Tran Huan viết 18:19 ngày 30/09/2018

ứng với mỗi 1 câu hỏi sẽ có 4 đáp án để chọn, sau khi làm hết 20 câu sẽ tiến hành xuất ra số câu người dùng đã trả lời đúng ra màn hình ak anh. Em dùng Radio Button để tạo ra 4 đáp án để chọn lựa nhưng không biết viết code tiếp theo như thế nào.

Bạn nên tìm hiểu thêm cách tạo giao diện bằng code để có thể tùy biến được nhiều hơn,nhớ là không phải mọi thiết kế trên GUI điều sử dụng Qt Creator để làm, Qt Creator hay bất kì những phần mềm hỗ trợ tạo giao diện nào khác đều có những giới hạn riêng của nó. Qt Creator chỉ là phần mềm hỗ trợ còn cái chính là người lập trình viên phải làm bằng code của mình.

Về phần giao diện thì ý tưởng mình sẽ làm thế này

  • Tạo 1 QWidget hiển thị 1 câu hỏi và 4 đáp án (Có thể dùng Qt Creator) gọi là QuestionWg, nó sẽ nhận vào các tham số như nội dung câu hỏi, nội dung câu trả lời, và đáp án đúng
  • Tùy theo số câu hỏi mình sẽ tạo ra số lượng QuestionWg tương ứng để sử dụng
  • Tùy theo kiểu hiển thị mình sẽ thêm các QuestionWg tạo ra vào Layout để hiển thị, nếu mỗi lần hiển thị 1 câu hỏi sau đó nhấn next để qua câu hỏi mới thì có thể dung QStackedLayout

Tham khảo thêm:

  • Cách sử dụng QRadioButton https://www.youtube.com/watch?v=gDaeZtjitc8
Nguyễn Minh Dũng viết 18:12 ngày 30/09/2018

Về phần giao diện thì ý tưởng mình sẽ làm thế này- Tạo 1 QWidget hiển thị 1 câu hỏi và 4 đáp án (Có thể dùng Qt Creator) gọi là QuestionWg, nó sẽ nhận vào các tham số như nội dung câu hỏi, nội dung câu trả lời, và đáp án đúng- Tùy theo số câu hỏi mình sẽ tạo ra số lượng QuestionWg tương ứng để sử dụng- Tùy theo kiểu hiển thị mình sẽ thêm các QuestionWg tạo ra vào Layout để hiển thị, nếu mỗi lần hiển thị 1 câu hỏi sau đó nhấn next để qua câu hỏi mới thì có thể dung QStackedLayout

Hợp lý rồi, làm như thế này thì sau này chỉ cần nhập vào nội dung câu hỏi và đáp án thì ta có ngay một bộ đề thi mới. Không cần phải viết lại chương trình.

Cũng giống như forum vậy, người ta làm sẵn chức năng post bài. Sau này post bài chỉ viết nội dung thôi. Giao diện mỗi post là cố định.

Nguyễn Tuấn Tiến viết 18:15 ngày 30/09/2018

Em xin cảm ơn những sự giúp đỡ của mọi người, em sẽ cố gắng tìm hiểu tiếp để hoàn thiện được bài tập lớn này.

Nguyễn Tuấn Tiến viết 18:08 ngày 30/09/2018

Hiện tại em không thể tạo nút Next để có thể chuyển qua tab khác, em tạo Qstacked Wg sau đó em dùng Group box để chứa các câu hỏi, ban đầu em có cho liên kết giữa nút Next với các Group box khác trong Qstacked Wg cho nó ẩn khi Click vào nút Next nhưng khi chạy chương trình thì khi nhấn vào nút Next thì nó ẩn hết các Group box mà em đã tạo.

Nguyễn Tuấn Tiến viết 18:08 ngày 30/09/2018

@tranhuanltv Anh có thể cho em tài liệu lập trình Qt bằng code được không ạ

Tran Huan viết 18:21 ngày 30/09/2018

Của bạn đây cuốn C++ GUI Programming with Qt 4 2006

Bài liên quan
0