2012-06-19 1 views
-2

나는 이런 구조 또는 링크 된 목록을 가지고 Qt 라이브러리가 생성합니다.구조체에 저장된 값을 Qt 테이블에 출력 하시겠습니까?</p> <pre><code>typedef struct Node { int k; char *mesage; struct Node *next; } node; </code></pre> <p>내가 입력 <code>k</code>의 값을 원하는이, 그것을 인쇄하고 그 후 윈도우 화면이 테이블의 형태로 모든 입력 값을 표시 열려있을 것입니다 :

+0

당신은 QTableWidget에 보일 것은 (http://doc.qt.nokia.com/4.7/qtablewidget.html는) – piwi

+0

감사하지만 테이블에 배치가와 구조에 저장된 데이터를 연결할 만들 수 있습니다 값이 테이블에 입력된다. @piwi – user1465557

+0

테이블이면서 나무가 아니라면, 클래스/구조체를'Row'와 같이 호출하는 것이 더 나을 것이다. 나에게 최소한 Node는 계층 적 구조를 의미합니다. –

답변

0

QAbstractTableModel을 다시 구현 한 다음 QTableWidget을 사용하여 액세스해야합니다.

편집 : 모델이 테이블 기반이 아닌 테이블 기반으로 보이므로 QAbstractItemModelQTreeView과 함께 사용해야합니다. 데이터가 진정으로 나무라면, 대부분의 메소드의 기본 구현을 사용할 수 있으므로 그리 고통스럽지 않습니다. 비 트리 데이터를 트리처럼 보이도록 만들려고 할 때 성가신 일이됩니다. 시작하기 전에 Qt의 모델/뷰 프로그래밍 the documentation을 읽는 것이 가장 좋습니다.

최고의 코드 예제는 Qt Creator와 함께 제공되는 코드 예제입니다 (예 : this one).

+0

위에서 정의한 기본 구조를 포함하여 QT를 사용하여 테이블을 만드는 코드를 도와주십시오. @ Styne666 – user1465557

+0

아니 나무 종류가 아닙니다. 실제로 네트워크 유형에서 데이터를 취할 것입니다. 데이터는 ID (구조로 k로 언급 됨), 메시지 및 어쩌면 하나 더 field.then과 같은 2 ~ 3 개의 필드를 갖습니다. 원하는 것은 그 값을 표시하는 것입니다. 이 QT.So를 사용하여 테이블 형식으로 네트워크에서 가져온 값을 먼저 저장 한 다음 테이블 값으로 전송하는 구조를 만들려고합니다. 이러한 데이터는 네트워크에서 500-600 숫자가 적어 지므로 테이블의 크기가 자동으로 커집니다. @ Styne666 – user1465557

+0

구조체, 위에서 작성한 QT 테이블 파트, cin.the에 의해 k 및 메시지 값을 입력하는 주요 기능을 포함하여 테이블의 헤더를 ID 및 메시지 @ Styne666 – user1465557

0
Node node; 

node.k = 5; 

QStandardItemModel* model = new QStandardItemModel(this); 

QStandardItem* item = new QStandardItem(); 
item->setData(node.k, Qt::DisplayRole); 

model->appendRow(item); 

QTableView* table = new QTableView(this); 
table->setModel(model); 
+0

만약 당신이 그것을 이런 방식으로 구현한다면, 나는 뷰를 통해 데이터를 변경하는 것이'node.k'를 업데이트하지 않는다고 생각합니다. –

+0

이렇게하려면 각 노드에 포인터가있는 숨겨진 열을 추가하고'itemChanged (QStandardItem * item) '신호에 연결 한 다음 필요한 노드를 업데이트하십시오. – hank

+0

아니 나무 유형 건 아니야. 실제로 나는 네트워크 유형에서 데이터를 취할 것입니다. 데이터는 ID와 같은 3 ~ 3 개의 필드 (구조에서 k로 언급 됨), 메시지 및 아마도 하나 이상의 field를 가질 것입니다. 그러면 원하는 값을 표시 할 수 있습니다. 이 QT.So를 사용하는 테이블 형식은 먼저 네트워크에서 가져온 값을 저장 한 다음 테이블 값으로 전송하는 구조를 만드는 것으로 생각합니다. 이러한 데이터는 네트워크에서 500-600 또는 숫자가 점점 더 적어 지므로 이와 유사하게 테이블의 크기는 자동으로 증가합니다. @hank – user1465557

관련 문제