Python 颜色( QtGui.qpalete.Active,QtGui.qpalete.HighlightedText ), ) 其他: ctx.palete.setColor( QtGui.qpalete.Text, option.palete.color(QtGui.qpalete.Active、QtGui.qpalete.Text), ) textRect=( options.rect )#style.subElementRect(QtGui.QStyle.SE_ItemViewItemText,选项) 如果index.column()!=0: textRect.adjust(5,0,0,0) Fuckyourshitup_常数=4 边距=(option.rect.height()-options.fontMetrics.height())//2 margin=margin-fuckyourshitup\u常数 textRect.setTop(textRect.top()+边距) painter.translate(textRect.topLeft()) painter.setClipRect(textRect.translated(-textRect.topLeft())) self.doc.documentLayout().draw(画师,ctx) 恢复 def sizeHint(自身、选项、索引): 返回QSize(self.doc.idealWidth(),self.doc.size().height()) 类小部件(QtGui.QWidget): def uuu init uuu(self,parent=None): 超级(小部件,自我)。\uuuuu初始化\uuuuuuu(父级) hlay=QtGui.QHBoxLayout() lay=QtGui.QVBoxLayout(自) self.le=QtGui.QLineEdit() self.button=QtGui.QPushButton(“过滤器”) self.table=QtGui.QTableWidget(5,5) hlay.addWidget(self.le) hlay.addWidget(self.button) 布局。添加布局(hlay) lay.addWidget(self.table) self.button.clicked.connect(self.find_项目) self.table.setItemDelegate(HTMLDelegate(self.table)) 对于范围内的i(self.table.rowCount()): 对于范围内的j(self.table.columnCount()): it=QtGui.QTableWidgetItem(random.choice(words)) self.table.setItem(i,j,it) def查找_项(自身): text=self.le.text() #清楚的 allitems=self.table.findItems(“,QtCore.Qt.MatchContains) selected_items=self.table.findItems(self.le.text(),QtCore.Qt.MatchContains) 对于allitems中的项目: item.setData(QtCore.Qt.UserRole,如果选中的项目中有项目,则为文本,否则为无) 如果名称=“\uuuuu main\uuuuuuuu”: 导入系统 app=QtGui.QApplication(sys.argv) w=Widget() w、 show() sys.exit(app.exec_())

Python 颜色( QtGui.qpalete.Active,QtGui.qpalete.HighlightedText ), ) 其他: ctx.palete.setColor( QtGui.qpalete.Text, option.palete.color(QtGui.qpalete.Active、QtGui.qpalete.Text), ) textRect=( options.rect )#style.subElementRect(QtGui.QStyle.SE_ItemViewItemText,选项) 如果index.column()!=0: textRect.adjust(5,0,0,0) Fuckyourshitup_常数=4 边距=(option.rect.height()-options.fontMetrics.height())//2 margin=margin-fuckyourshitup\u常数 textRect.setTop(textRect.top()+边距) painter.translate(textRect.topLeft()) painter.setClipRect(textRect.translated(-textRect.topLeft())) self.doc.documentLayout().draw(画师,ctx) 恢复 def sizeHint(自身、选项、索引): 返回QSize(self.doc.idealWidth(),self.doc.size().height()) 类小部件(QtGui.QWidget): def uuu init uuu(self,parent=None): 超级(小部件,自我)。\uuuuu初始化\uuuuuuu(父级) hlay=QtGui.QHBoxLayout() lay=QtGui.QVBoxLayout(自) self.le=QtGui.QLineEdit() self.button=QtGui.QPushButton(“过滤器”) self.table=QtGui.QTableWidget(5,5) hlay.addWidget(self.le) hlay.addWidget(self.button) 布局。添加布局(hlay) lay.addWidget(self.table) self.button.clicked.connect(self.find_项目) self.table.setItemDelegate(HTMLDelegate(self.table)) 对于范围内的i(self.table.rowCount()): 对于范围内的j(self.table.columnCount()): it=QtGui.QTableWidgetItem(random.choice(words)) self.table.setItem(i,j,it) def查找_项(自身): text=self.le.text() #清楚的 allitems=self.table.findItems(“,QtCore.Qt.MatchContains) selected_items=self.table.findItems(self.le.text(),QtCore.Qt.MatchContains) 对于allitems中的项目: item.setData(QtCore.Qt.UserRole,如果选中的项目中有项目,则为文本,否则为无) 如果名称=“\uuuuu main\uuuuuuuu”: 导入系统 app=QtGui.QApplication(sys.argv) w=Widget() w、 show() sys.exit(app.exec_()),python,python-3.x,pyqt,pyqt5,qtablewidget,Python,Python 3.x,Pyqt,Pyqt5,Qtablewidget,若要仅更改文本的一部分,您必须使用我在此构建的HTMLElegate,但必须对其进行修改,以避免更改可能是信息而不是所需文本的html: 从PyQt5导入QtCore、QtGui、qtwidget 随机输入 尝试: 从html导入转义 除恐怖外: 从cgi导入转义 单词=[ “你好”, “世界”, “堆栈”, “溢出”, “你好,世界”, “你好,世界”, ] 类HTMLDelegate(QtWidgets.QStyledItemDelegate): def uuu init uuu(self,

若要仅更改文本的一部分,您必须使用我在此构建的HTMLElegate,但必须对其进行修改,以避免更改可能是信息而不是所需文本的html:

从PyQt5导入QtCore、QtGui、qtwidget
随机输入
尝试:
从html导入转义
除恐怖外:
从cgi导入转义
单词=[
“你好”,
“世界”,
“堆栈”,
“溢出”,
“你好,世界”,
“你好,世界”,
]
类HTMLDelegate(QtWidgets.QStyledItemDelegate):
def uuu init uuu(self,parent=None):
超级(HtmlLegate,self)。\uuuu初始化(父级)
self.doc=QtGui.QTextDocument(self)
def油漆(自身、油漆工、选项、索引):
substring=index.data(QtCore.Qt.UserRole)
保存
options=QtWidgets.QStyleOptionViewItem(选项)
self.initStyleOption(选项,索引)
res=“”
颜色=QtGui.QColor(“橙色”)
如果子字符串:
子字符串=options.text.split(子字符串)
res=”“{}”“。格式(
color.name(QtGui.QColor.HexRgb),子字符串
).join(列表(映射(转义,子字符串)))
其他:
res=转义(options.text)
self.doc.setHtml(res)
options.text=“”
样式=(
qtwidts.QApplication.style()
如果options.widget为None
else options.widget.style()
)
style.drawControl(qtwidts.QStyle.CE_ItemViewItem、选项、画师)
ctx=QtGui.QAbstractTextDocumentLayout.PaintContext()
如果选择option.state&qtwidts.QStyle.state\u:
ctx.palete.setColor(
QtGui.qpalete.Text,
option.palete.color(
QtGui.qpalete.Active,QtGui.qpalete.HighlightedText
),
)
其他:
ctx.palete.setColor(
QtGui.qpalete.Text,
option.palete.color(QtGui.qpalete.Active、QtGui.qpalete.Text),
)
textRect=style.subElementRect(qtwidts.QStyle.SE_ItemViewItemText,选项)
如果index.column()!=0:
textRect.adjust(5,0,0,0)
Fuckyourshitup_常数=4
边距=(option.rect.height()-options.fontMetrics.height())//2
margin=margin-fuckyourshitup\u常数
textRect.setTop(textRect.top()+边距)
painter.translate(textRect.topLeft())
painter.setClipRect(textRect.translated(-textRect.topLeft()))
self.doc.documentLayout().draw(画师,ctx)
恢复
def sizeHint(自身、选项、索引):
返回QSize(self.doc.idealWidth(),self.doc.size().height())
类小部件(qtwidts.QWidget):
def uuu init uuu(self,parent=None):
超级(小部件,自我)。\uuuuu初始化\uuuuuuu(父级)
hlay=qtwidts.QHBoxLayout()
lay=qtwidts.QVBoxLayout(self)
self.le=qtwidts.QLineEdit()
self.button=qtwidts.QPushButton(“过滤器”)
self.table=QtWidgets.QTableWidget(5,5)
hlay.addWidget(self.le)
hlay.addWidget(self.button)
布局。添加布局(hlay)
lay.addWidget(self.table)
self.button.clicked.connect(self.find_项目)
self.table.setItemDelegate(HTMLDelegate(self.table))
对于范围内的i(self.table.rowCount()):
对于范围内的j(self.table.columnCount()):
it=QtWidgets.QTableWidgetItem(random.choice(words))
self.table.setItem(i,j,it)
def查找_项(自身):
text=self.le.text()
#清楚的
allitems=self.table.findItems(“,QtCore.Qt.MatchContains)
selected_items=self.table.findItems(self.le.text(),QtCore.Qt.MatchContains)
为了它
def FindItem(self):
    items = self.SuraBRS.findItems(
        self.SearchTbox.text(), QtCore.Qt.MatchContains)
    if items:
        results = '\n'.join(
            'row %d column %d' % (item.row() + 1, item.column() + 1)
            for item in items)
    else:
        results = 'Found Nothing'
    print(results)