2012-05-09 9 views
7

Tôi muốn lưu trữ dữ liệu tùy chỉnh bằng cách sử dụng một mô hình. Đối với điều đó, có một chút nhầm lẫn mà mô hình mục để chọn cho phân lớp. Tôi cần một số làm rõ như, đó là mô hình tốt nhất để phân lớp? Và tôi cũng cần những lợi thế của QAbstractItemModel trên QStandardItemModel?Ưu điểm của QAbstractItemModel trên QStandardItemModel là gì?

Cảm ơn!

Trả lời

2

Tùy theo nhu cầu của bạn. Sử dụng QStandardItemModel nếu bạn chỉ muốn lưu trữ dữ liệu tùy chỉnh và không muốn viết logic mô hình của riêng mình. Điều này là chung chung, bạn có thể sử dụng nó cho dữ liệu tùy chỉnh mà không cần phân lớp.

Nói cách khác, nếu bạn muốn viết logic mô hình của riêng mình, sau đó chọn QAbstractItemModel. Nó là lớp trừu tượng. Nó có nghĩa là, nó không có hành vi thực hiện, nó chỉ là một 'giao diện'. Nó cho bạn biết phương thức nào mô hình của bạn nên triển khai, vì vậy nó có thể được sử dụng như một lớp ItemModel khác trong Qt.

+0

Cảm ơn kousalik! Bất kỳ sự khác biệt lớn nào khác? – Dev

+0

Không, QStandardItemModel là một triển khai (lớp con) của QAbstractItemModel – Kousalik

+0

@Kousalik bạn có thể mở rộng về ý nghĩa của mô hình logic của bạn không? Logic mô hình cụ thể nào thực hiện QStandardItemModel, mà không được thực hiện bởi AbstractItemModel? Ví dụ: nếu bạn muốn mô hình của mình có thể chỉnh sửa, có dễ dàng hơn với StandardItemModel không? Tôi chỉ tò mò vì tôi đã sử dụng QAbstractItemModel, và tôi đang nghĩ về lý do tại sao tôi nên hoặc không nên chuyển sang QStandardItemModel. – neuronet