2013-09-09 3 views
0

У меня есть следующий код: (PyQt)Логическая ошибка в заполнении QTableWidget и заполнение всех узлов

searchFrameObject.tableWidget.setRowCount(rowCounter) 
searchFrameObject.tableWidget.setColumnCount(5) 

for row in range(rowCounter): 
    for column in range(5): 
     for result in query: 

      item = QtGui.QTableWidgetItem(_fromUtf8(result.name)) 
      item.setFlags(item.flags()^QtCore.Qt.ItemIsEnabled) 
      searchFrameObject.tableWidget.setItem(row,column,item) 

      #item = QtGui.QTableWidgetItem(String(result.bought_price)) 
      #item.setFlags(item.flags()^QtCore.Qt.ItemIsEnabled) 
      #searchFrameObject.tableWidget.setItem(row,column+1,item) 

      #item = QtGui.QTableWidgetItem(result.bought_date) 
      #item.setFlags(item.flags()^QtCore.Qt.ItemIsEnabled) 
      #searchFrameObject.tableWidget.setItem(row,column+2,item) 

      item = QtGui.QTableWidgetItem(result.stock) 
      item.setFlags(item.flags()^QtCore.Qt.ItemIsEnabled) 
      searchFrameObject.tableWidget.setItem(row,column+3,item) 

      item = QtGui.QTableWidgetItem(result.minimum_bound) 
      item.setFlags(item.flags()^QtCore.Qt.ItemIsEnabled) 
      searchFrameObject.tableWidget.setItem(row,column+4,item) 

Когда я поиск в БД, я print result.name или print result.stock, все в порядке. Но когда я импортирую их в QtableWidget, я вижу только узел result.name addeed to widgets. (все узлы, заполненные от result.name)

Мой вопрос: Как я заполняю строки и столбцы своими полями?

+0

попробуйте прокомментировать строку 'для столбца в диапазоне (5):' –

+0

Спасибо ...! я прокомментировал и решил ..., конечно, мне следовало бы столкнуться вручную: 0, 1, 2 – PersianGulf

ответ

1

Попробуйте прокомментировать строку for column in range(5): и установить column на номер 0.

Кажется, что нет смысла запускать этот цикл, потому что вы вручную увеличиваете число столбцов, в которое хотите добавить item.

Еще одна вещь, в которой нет петли над query, потому что то, что появляется в определенной строке, является последним в query. Кроме того, вы бесполезно задыхаетесь от памяти, создавая (len(query) - 1) * 5 элементов, которые потенциально никогда не могут быть использованы повторно. Лучше прокомментируйте for result in query: и замените его на result = list(query)[-1].

+0

Я решил, это было очень важно: 1. столбец для 2. потому что я определил свой язык персидского Ирана, он не смог получить integer, поэтому я определил функцию для преобразования integer в persian. – PersianGulf

+0

@MohsenPahlevanzadeh не уверен, что я вполне понимаю, что вы указываете –

 Смежные вопросы

  • Нет связанных вопросов^_^