我正在使用Python和pyqt4。 我的QTableWidget允許用戶選擇多個單元格。 對於QTableWidget中的單個特定行&列單元格,我需要讀取該單元格是由用戶選擇突出顯示還是未突出顯示。 什麼是pyqt調用來讀取單元格的選擇/高光值?使用Python在QTableWidget中獲取特定行和列的單元格突出顯示pyqt4
編輯:我需要做它沒有信號/槽呼叫。我只是有一個QTableWidget和一個行和列號,我需要得到,如果該單元格被選中或沒有。
我正在使用Python和pyqt4。 我的QTableWidget允許用戶選擇多個單元格。 對於QTableWidget中的單個特定行&列單元格,我需要讀取該單元格是由用戶選擇突出顯示還是未突出顯示。 什麼是pyqt調用來讀取單元格的選擇/高光值?使用Python在QTableWidget中獲取特定行和列的單元格突出顯示pyqt4
編輯:我需要做它沒有信號/槽呼叫。我只是有一個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
我應該澄清...我需要做到這一點,沒有信號/插槽調用。我只是有一個qtablewidget和一個行號和列號,我需要得到該單元格是否被選中。 – panofish 2014-09-13 15:19:24
您可以使用'list-of-QTableWidgetItem QTableWidget.selectedItems(self)'獲取所有選定的項目。你可以在這裏檢查它。 – 2014-09-13 17:16:41