2014-01-09 71 views
1

嗨,我是新來的蟒蛇。我試圖從Qtablewidget中顯示來自sqlite數據庫的數據,但只獲得qtablewidget中顯示的行數。請任何人都可以幫我解決這個問題。以下是我的代碼...如何在Qtablewidget中顯示來自sqlite的數據。

patientTable = QtGui.QTableWidget() 
rowcount = queryCurs.execute('''SELECT COUNT(*) FROM PATIENT''').fetchone()[0] 
patientTable.setRowCount(rowcount) 
queryCurs.execute('''SELECT * FROM PATIENT''') 
for row, form in enumerate(queryCurs): 
    for column, item in enumerate(form): 
      patientTable.setItem(row, column, QtGui.QTableWidgetItem(str(item))) 

我需要rowcount和數據庫中的數據來顯示。我怎麼做?

+0

您應該嘗試使用'QSqlTableModel'(http://qt-project.org/doc/qt-4.8/qsqltablemodel.html) - 這將處理這些東西,並避免需要手動'SELECT'聲明。檢查例如這個基於C++的演示,它應該是直接轉移到Python:http://www.java2s.com/Code/Cpp/Qt/QSqlTableModeldemo.htm – sebastian

+0

謝謝你,我會努力....感謝您的答覆.. –

回答

2

這是多麼我已經做到了:

queryCurs.execute("SELECT * FROM PATIENT") 
row = 0 
while True: 
    form = queryCurs.fetchone() 
    if form == None: 
     break 
    for column, item in enumerate(form): 
     patientTable.setItem(row, column, QtGui.QTableWidgetItem(str(item))) 
    row += 1 

這樣能否解決您的問題請回復。

+1

@亞歷山大 - 這個工程。我檢查了它,但我的代碼是我發佈的,我添加了2行,比如columncount幫助我,現在兩行列數據都很好,謝謝你的建議 –

相關問題