Tôi không chắc chắn làm thế nào để yêu cầu điều này, vì vậy, cảm thấy tự do để yêu cầu thêm thông tin.Làm thế nào để đảm bảo các cột trong QTableView được thay đổi kích thước thành tối đa
Dường như tableView->resizeColumnsToContents()
sẽ chỉ thay đổi kích thước tất cả các cột dựa trên dữ liệu trong chế độ xem hiện tại. Điều đó có nghĩa là nếu tôi có nhiều dữ liệu bên dưới (dài hơn về số lượng từ), những từ đó sẽ được bao bọc (nếu thuộc tính wordWrap
được đặt thành true).
Điều kỳ lạ là, nếu tôi cuộn xuống dưới cùng và làm mới dữ liệu, tableView
sẽ thay đổi kích thước các cột đó một cách chính xác. Dường như là tableView
không biết có văn bản dài hơn bên dưới.
Vì vậy, câu hỏi của tôi là, làm cách nào để đảm bảo rằng các cột đó được thay đổi kích thước thành giá thầu tối đa dựa trên tất cả dữ liệu?
mã My
QSqlTableModel *model = new QSqlTableModel;
model->setTable("item");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
tableResult->setModel(model);
tableResult->setEditTriggers(QAbstractItemView::NoEditTriggers);
tableResult->setSelectionBehavior(QAbstractItemView::SelectRows);
tableResult->setSelectionMode(QAbstractItemView::SingleSelection);
tableResult->resizeColumnsToContents();
tableResult->resizeRowsToContents();
Cập nhật 1
Tôi đã thử tableResult->scrollToBottom()
và nó sẽ chỉ chỉnh kích cỡ dựa trên mục ở phía dưới. Vì vậy, nếu có những từ dài hơn ở giữa, những từ đó sẽ được bao bọc.
Cập nhật 2
Nếu bất cứ ai muốn hiểu những gì tôi đang nói về, chỉ cần
download
ví dụ này. Bạn sẽ thấy rằng việc nhấn vào nút PushButton sẽ tạo ra một dữ liệu không được thay đổi kích cỡ một cách chính xác.
Cập nhật 3
Có thể là một lỗi: https://bugreports.qt.io/browse/QTBUG-9352
Tôi đang gặp sự cố này. chỉ các hàng có thể thay đổi kích thước. Bạn đã bao giờ tìm thấy một sửa chữa cho điều này? – ComputerEngineer88