[英]Get cell highlight for specfic row & column in QTableWidget using Python pyqt4
我正在使用Python和pyqt4。 我的QTableWidget允許用戶選擇多個單元格。 對於QTableWidget中的單個特定行和列單元格,我需要讀取該單元格是否已通過用戶選擇突出顯示。 讀取單元格的選擇/突出顯示值的pyqt調用是什么?
編輯:我需要沒有信號/插槽調用。 我只是有一個QTableWidget以及行和列號,我需要獲取是否選擇了該單元格。
使用list-of-QTableWidgetItem QTableWidget.selectedItems (self)
從用戶選擇或突出顯示中獲取所選項目。 並在項目選擇更改時處理信號void itemSelectionChanged ()
做;
import sys
from PyQt4 import QtGui
class QCustomTableWidget (QtGui.QTableWidget):
def __init__ (self, parentQWidget = None):
super(QCustomTableWidget, self).__init__(parentQWidget)
self.setColumnCount(2)
self.setRowCount(3)
self.setItem(0, 0, QtGui.QTableWidgetItem('Test 1'))
self.setItem(0, 1, QtGui.QTableWidgetItem('Test 2'))
self.setItem(1, 0, QtGui.QTableWidgetItem('Work 1'))
self.setItem(1, 1, QtGui.QTableWidgetItem('Work 2'))
self.setItem(2, 0, QtGui.QTableWidgetItem('Area 1'))
self.setItem(2, 1, QtGui.QTableWidgetItem('Area 2'))
self.itemSelectionChanged.connect(self.itemSelectionChangedCallback)
def itemSelectionChangedCallback (self):
print '#' * 80
for currentQTableWidgetItem in self.selectedItems():
print currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text()
if __name__ == '__main__':
myQApplication = QtGui.QApplication(sys.argv)
myQCustomTableWidget = QCustomTableWidget()
myQCustomTableWidget.show()
sys.exit(myQApplication.exec_())
編輯:我需要沒有信號/插槽調用。 我只是有一個QTableWidget以及行和列號,我需要獲取是否選擇了該單元格。
在PyQt4中,只能使用方法bool QTableWidget.isItemSelected (self, QTableWidgetItem item)
。 如果要按行和列的索引使用,則必須創建自己的新方法。 使用“使用list-of-QTableWidgetItem QTableWidget.selectedItems (self)
檢查行和列是否匹配;
class QCustomTableWidget (QtGui.QTableWidget):
.
.
.
def isItemSelectedByIndex (self, row, column):
isSelection = False
for currentQTableWidgetItem in self.selectedItems():
if (row, column) == (currentQTableWidgetItem.row(), currentQTableWidgetItem.column()):
isSelection = True
break
return isSelection
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.