python - Pyqt5:QtableWidgetItem "None"

标签 python python-3.x pyqt5 qtablewidget qtablewidgetitem

我在 PyQt5 中创建了一个表,并通过此方法检索单元格中的数据。但是当我尝试 QTableWidgetItem 中的单元格变为 None 时。那么,我如何解决这个问题以及如何在特定单元格中插入其他确定的项目,例如项目 2、项目 3...谢谢

import sys
from PyQt5.QtWidgets import (QWidget, QTableWidget, QHBoxLayout, QApplication, QTableWidgetItem)
from PyQt5.QtGui import QBrush, QColor 
from PyQt5 import QtCore

data = {'111':['Title 1','121','94565','','','','684651','','','44651','','',''], '112':['Title 2','65115','','466149','46645','555641','','','','412045','98416','',''], '113':['Title 3','','','','466149','46645','555641','98656','','','412045','98416','','']} 

class Table(QWidget):
    def __init__(self, *args, parent=None):
        super().__init__()
        self.data = data
        self.setuptUI()
        k = 'str'
        v = int
        n = int
        m = int
        self.setdata(k, v, n, m)

def setuptUI(self):
  self.setWindowTitle("QTableWidgetItem")
                self.resize(1200, 800)
                conLayout = QHBoxLayout()
    self.tableWidget =QTableWidget(self)
    self.tableWidget.setRowCount(55)
    self.tableWidget.setColumnCount(14)
    conLayout.addWidget(self.tableWidget)

def setdata(self, k, v, n, m):
    global item
    item = str(self.data.get(k))
    for key in self.data:
        if k in key:
            item = self.data.get(k)[v]
            print(item)
    newItem = QTableWidgetItem(str(item))
    newItem.setForeground(QBrush(QColor(255, 0, 0)))
    self.tableWidget.setItem(23, 4, newItem)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    windows = Table(data)
    item1= Table()
    item1.setdata(k="113", v=5, n=24, m=4)
    #item2= Table()
    #item2.setdata(k="113", v=5, n=25, m=4
    windows.show()
    sys.exit(app.exec_())

最佳答案

尝试一下:

import sys
from PyQt5.QtWidgets import (QWidget, QTableWidget, QHBoxLayout, QApplication, QTableWidgetItem)
from PyQt5.QtGui import QBrush, QColor 
from PyQt5 import QtCore

data = {'111':['Title 1','121','94565','','','','684651','','','44651','','',''], 
        '112':['Title 2','65115','','466149','46645','555641','','','','412045','98416','',''], 
        '113':['Title 3','','','','466149','46645','555641','98656','','','412045','98416','','']} 

class Table(QWidget):
    def __init__(self, data):                              # data
        super().__init__()
        self.data = data
        self.setuptUI()

#        k = 'str'
#        v = int
#        n = int
#        m = int
#        self.setdata(k, v, n, m)

    def setuptUI(self):
        self.setWindowTitle("QTableWidgetItem")
        self.resize(1200, 600)

        conLayout        = QHBoxLayout(self)                 # + self
        self.tableWidget = QTableWidget(self)
        self.tableWidget.setRowCount(55)
        self.tableWidget.setColumnCount(14)
        conLayout.addWidget(self.tableWidget)

    def setdata(self, k, v, n, m):
#        global item                                          # ---
#        item = str(self.data.get(k))
#        for key in self.data:
#            if k in key:
        item = self.data.get(k)[v]
        print(item)

        newItem = QTableWidgetItem(str(item))
        newItem.setForeground(QBrush(QColor(255, 0, 0)))
#        self.tableWidget.setItem(23, 4, newItem)
        self.tableWidget.setItem(n, m, newItem)

if __name__ == '__main__':
    app = QApplication(sys.argv)

    windows = Table(data)
#-    item1= Table()
#-    item1.setdata(k="113", v=5, n=24, m=4)
    windows.setdata(k="113", v=5, n=24, m=4)
    windows.setdata(k="113", v=6, n=24, m=5)         #  v=6, m=5

    windows.show()
    sys.exit(app.exec_())

enter image description here

关于python - Pyqt5:QtableWidgetItem "None",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55171115/

相关文章:

python - 使用 DFS 或 Greedy BFS 解决解决方案搜索?

python - 根据类型过滤类的属性

python - mousePressEvent 不适用于子部件?

python - 将不同数据帧的列表保存到 json

尽管存在 Mac,Python pandas read_csv 返回 FileNotFoundError

python - 为什么附加到一个列表也会附加到我的列表中的所有其他列表?

python - 检查生成的字符串与 python 中的预设字符串

python - 如何测试\symbol(反斜杠)是否在字符串中?

python - 如何单击 PyQt5 代码上的按钮并允许它执行/运行另一个 .py 文件?

python - 覆盖 mousePressEvent 后 Qt Widget 调整大小