2014-04-07 35 views
6

Tôi đang làm việc trong Qt 4.7, và có một hộp thoại chứa (trong số những thứ khác không liên quan) một QTableView và một QButton. Khi QButton được nhấp, nó phải xóa tất cả dữ liệu từ QTableView. Tôi không chắc chắn về cách đi cùng với điều này. Tôi đã xem xét trực tuyến một thời gian, nhưng không tìm thấy bất cứ điều gì quá hữu ích. Dựa trên những gì tôi thấy here, tôi đã cố gắng này:Qt - Xóa nội dung của QTableView

void MyClass::on_myButton_clicked() { myTableView->model()->clear(); }

Tuy nhiên, điều này đã được lỗi sau:

error: C2039: 'clear' : is not a member of 'QAbstractItemModel' 

Có một cách khác để làm điều này mà tôi vô tình nhìn ra? Cảm ơn!

Trả lời

7

Hàm myTableView->model() trả về một QAbstractItemModel không chứa phương thức clear(). Bạn nên gọi phương thức rõ ràng của mô hình của bạn. Nếu bạn có một mô hình như:

QStandardItemModel * model= new QStandardItemModel(2, 4); 

Calling rõ ràng nên xóa tất cả dữ liệu từ mô hình xóa xem như một hệ quả là nó được cung cấp để hiển thị dữ liệu trong mô hình liên quan đến:

model->clear(); 
7

Tôi sẽ đặt lại mô hình (Nếu bạn không cần dữ liệu trong mô hình sau). lớp mô hình của bạn (nếu nó là một phong tục một) và thực hiện một khe như

void clear(){ 
    this->beginResetModel(); 
    ... // clear the content of your model here 
    this->endResetModel(); 
{ 

Chỉ cần kiểm tra this.

Các vấn đề liên quan