[英]Inserting data from sqlite database to QTableWidget using PyQt in Python
[英]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.