2010-10-14 38 views
7

Đang sử dụng Qtableview với QsqlTableModel để điền dữ liệu bảng. Tôi muốn sắp xếp cột dựa trên lựa chọn người dùng trên tiêu đề cột.Qt Qtableview không nhận được tín hiệu cho mục tiêu nhấp vào

Tôi đã thử các cách nêu tại QTableView sorting signal? để nhận được tín hiệu (lấy tiêu đề ngang từ QtableView và kết nối tín hiệu sectionclicked (int logic index). Tuy nhiên, các tín hiệu tương tự là không nhận được phát ra khi tôi bấm vào tiêu đề cột.

Hãy tìm mã nơi kết nối được thực hiện:

Member biến:

QHeaderView *m_horiz_header; 

cpp tập tin

m_sqltablemodel->setTable(tabel_name); 
m_sqltablemodel->setEditStrategy(QSqlTableModel::OnManualSubmit); 
m_sqltablemodel->select(); 

m_horiz_header= m_table_view->horizontalHeader(); 
connect(m_horiz_header, SIGNAL(sectionClicked (int logicalIndex)), 
    this, SLOT(on_sectionClicked (int logicalIndex))); 

chức năng Khe cắm để phân loại:

void class::on_sectionClicked (int logicalIndex) 
{ 
    m_horiz_header->setSortIndicator(logicalIndex, Qt::AscendingOrder); 
    m_table_view->sortByColumn(logicalIndex); 
} 

Chức năng này không được nhận được gọi là, khi tiêu đề cột được nhấp.

Bạn có thể vui lòng giúp tôi cách thực hiện việc này không, nơi tôi đã đi sai?

Xin cảm ơn trước.

+0

Chủ đề liên quan: http://stackoverflow.com/questions/24714130/qt-5-3-qtreeview-clickable-header-data – neuronet

Trả lời

7

Tôi có lý do tại sao kết nối tín hiệu không thành công.

không nên đề cập đến tên đối số khi kết nối.

connect(m_horiz_header, SIGNAL(sectionClicked(int)), this, SLOT(on_sectionClicked(int))); 

bằng cách sửa đổi mã ở trên như thế này, nó hoạt động.

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