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 ạ. :frowning:

2 Likes

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.

1 Like

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.

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

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

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

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.

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 :smile:

1 Like

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

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.

1 Like

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

1 Like

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

1 Like

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.

1 Like

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:

3 Likes

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.

2 Likes

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. :slight_smile:

2 Likes

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. :frowning:

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

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

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?