2012-01-08 3 views
9

나는 PyQt를 처음 사용하고 아직도 혼란 스럽다. 내가이 파일이 내 방법을 오순절 읽을 때 공백을 탭 "\의 t"실제로 파이썬 - PyQt - QTable 위젯 - 행 추가하기

지금 내가 QTable 위젯을 채우는 할

  • 이름 성 전화 이메일 :이 같은 텍스트 파일 구조를 가지고 .

    내 QTable 위젯 Name라는 4 열, Surname, Telephone, Email 지금에 행이 없습니다하지만 난 파일에서 라인을 읽고 도표 작성하여 각 행을 분할로 나는 각 열에 포함에있는 새 행을 추가 할을 가지고 어떤 라인에 있었다.

    QTable 위젯이 제공하는 솔루션이나 방법을 찾을 수 없기 때문에 누군가이 방향을 가르쳐 줄 수 있습니까?

답변

14

QTableWidget을 채울 때 example in documentation 데이터를 삽입하기 전에 행 및 열 개수를 설정해야합니다 (PySide 설명서가 PyQt보다 낫습니다). 그리고 테이블에 탭으로 구분 된 텍스트 문자열을 삽입 할 수는 없습니다. 직접 작성해야하며 QTableWidgetItem의 테이블을 채우려면 QTableWidget.setItem을 호출해야합니다. 그것은 다음과 같이 표시됩니다 : 당신이 당신의 항목이 data 파일이 있으리라 믿고있어, 및 tableWidgetQTableWidget 인스턴스

entries = [] 
with open('data') as input: 
    for line in input: 
     entries.append(line.strip().split('\t')) 

tableWidget.setRowCount(len(entries)) 
tableWidget.setColumnCount(len(entries[0])) 

for i, row in enumerate(entries): 
    for j, col in enumerate(row): 
     item = QTableWidgetItem(col) 
     tableWidget.setItem(i, j, item) 

.

이 예제 파일은 수동으로 파싱되었지만이 작업에는 standart csv module을 사용하는 것이 좋습니다.

+0

도움 주셔서 감사합니다. 내 방법은 어디에 내 메서드를 파일을 선으로 읽고 당신이 그랬던 것처럼 목록에 라인을 추가 변경되었습니다. 고마워. –

+0

나 같은 파이썬 초보자를 위해 : 나는 QtableWidgetItem을 사용하기 위해 PyQt4에서 가져온 QtGui (PyQt4에서 가져온 QtCore, QyGui)를 사용하고 QTableWidgetItem 대신에 QtGui.QTableWidgetItem을 사용해야한다고 생각한다. –