2012-01-08 21 views
9

私はPyQtを初めて使用していて、やはり混乱しています。私はこのようなテキストファイルの構造をしている:私は、このファイルが私の方法を聖霊降臨祭読むときPython - PyQt - QTableウィジェット - 行を追加する

  • 名姓電話メールスペースが実際にタブです

「\ t」は、今私はQTableウィジェットを移入したいです。

マイQTableウィジェットは4列が、今それが行を持っていませんが、私は、ファイルから行を読み込むと、各カラムに何が含まれていることを、私は新しい行を追加したいタブで各ラインを分割するよう EmailTelephoneSurnameName呼びかけている

ラインに入っていた。

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

ありがとうございました。私は私のメソッドが行ごとにファイルを読み取り、あなたが行ったようにリストに行を追加する私のGUIアプリケーションを変更しました。どうもありがとう。 –

+0

私のようないくつかのpython初心者のために、私はPyTtWitgetItemを使うと思う.QtableをPyQt4(PyQt4 import QtCore、QyGuiから)からインポートし、QTableWidgetItemの代わりにQtGui.QTableWidgetItemを使うだけだ。 –

関連する問題