簡體   English   中英

將數據插入pyqt Qtablewidget

[英]Inserting data into pyqt Qtablewidget

我將mysql數據插入pyqt Qtablewidget中,但是當我將數據傳遞給一個variabel時,數據僅打印到表的一個單元格中。 有什么建議么?

我的代碼:

import sys
import MySQLdb as mdb
from PyQt4.QtGui import *
db = mdb.connect('server','user','password','db')

model = db.cursor()
model.execute("""SELECT ip
                    FROM table""")
rows_pong = (model.fetchall())
data = "\n".join(item[0] for item in rows_pong)
print data

lista = [data]
listb = ['ba', 'bb', 'bc']
mystruct = {'A':lista, 'B':listb}

class MyTable(QTableWidget):
    def __init__(self, thestruct, *args): 
        QTableWidget.__init__(self, *args)
        self.data = thestruct
        self.setHorizontalHeaderLabels(['IP Address', 'Username'])
        self.setmydata()

    def setmydata(self):
        for n, key in enumerate(self.data):
            for m, item in enumerate(self.data[key]):
                newitem = QTableWidgetItem(item)
                self.setItem(m, n, newitem)

def main(args):
    app = QApplication(args)
    table = MyTable(mystruct, 100, 3)
    table.show()
    sys.exit(app.exec_())

if __name__=="__main__":
    main(sys.argv)

樣本數據(變量中的項目):

10.10.0.171:139

10.10.0.171:139

127.0.0.1:3306

127.0.0.1:20128

127.0.0.1:20129

127.0.0.1:20130

127.0.0.1:20130

127.0.0.1:20131

127.0.0.1:20131

127.0.0.1:61335

127.0.0.1:61561

127.0.0.1:61562

127.0.0.1:61942

127.0.0.1:61943

127.0.0.1:62291

127.0.0.1:62292

127.0.0.1:63093

127.0.0.1:63094

它按我的預期工作。 不知道它的目的,但lista由一個項目,因為你是加盟查詢的結果為一個字符串。 嘗試將data = "\\n".join(item[0] for item in rows_pong)data = [item[0] for item in rows_pong] data = "\\n".join(item[0] for item in rows_pong) data = [item[0] for item in rows_pong] ,如果希望每個IP都將lista = [data]更改為lista = data顯示在新行中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM