Tôi đã một QTableWidget mà tôi cư như thế này:Strange QTableWidget hành vi - không phải tất cả các tế bào dân sau khi phân loại tiếp theo repopulating
// Clear the table
this->topPatchesTableWidget->setRowCount(0);
this->topPatchesTableWidget->setRowCount(numberToDisplay);
for(unsigned int pairId = 0; pairId < numberToDisplay; ++pairId)
{
// Display patch match scores
QTableWidgetItem* myLabel = new QTableWidgetItem;
myLabel->setData(Qt::DisplayRole, myValues[pairId]);
this->tableWidget->setItem(pairId, 0, myLabel);
... fill other columns ...
}
(Tôi có một số yếu tố giao diện người dùng khác để thiết lập thuộc tính tính toán các giá trị trong myValues) . Nếu tôi thay đổi các thuộc tính, tính toán lại và tạo lại bảng, mọi thứ sẽ hoạt động như mong đợi. Nếu tôi sắp xếp bảng bằng cách nhấp vào một trong các tiêu đề, nó sẽ sắp xếp chính xác. BAO GIỜ, nếu vào thời điểm này (sau khi phân loại) tôi bấm vào nút của tôi một lần nữa để tính lại các giá trị và tạo lại bảng, bảng rất bị hỏng. Nghĩa là, nhiều ô trống rỗng và các ô không trống rỗng dường như không theo thứ tự cụ thể nào.
Bằng cách thêm một cuộc gọi bằng tay để
this->tableWidget->sortByColumn(0, Qt::AscendingOrder);
vào đầu chức năng CreateTable của tôi, mọi thứ hoạt động như mong đợi, nhưng tất nhiên bảng mới được tạo ra được sắp xếp theo cột 0 chứ không phải cột đã được chọn để loại cuối cùng.
Có ai có bất kỳ ý tưởng nào về việc tại sao mọi thứ sẽ trở nên quá sai khi không có cuộc gọi đến sortByColumn? (Tôi đã cố gắng để làm một ví dụ đơn giản nhưng tôi không thể nhân rộng vấn đề trong một chương trình demo).
Cảm ơn,
David
Điều này làm việc và tôi nghĩ rằng nên là câu trả lời cho câu hỏi này. Thử nghiệm trên QTableWidget bằng PyQt4. – ray