반응형
<질문>
나는 pyqt4의 새로운 기능이며 이것을 수행하는 방법을 알 수 없습니다. 데이터가있는 QtableWidget이 있습니다. tableWidget 셀의 배경색을 변경하고 싶습니다.
나는 시도했다
self.tableWidget.item(3, 5).setBackground(QtGui.QColor(100,100,150))
다음 오류를 반환합니다.
AttributeError : 'NoneType'개체에 'setBackground'속성이 없습니다.
어떻게해야합니까?
<답변1>
배경색을 설정하기 전에 먼저 표의 해당 위치에 항목을 만들어야합니다.
self.tableWidget.setItem(3, 5, QtGui.QTableWidgetItem())
self.tableWidget.item(3, 5).setBackground(QtGui.QColor(100,100,150))
<답변2>
import sys
from PyQt4 import QtGui, QtCore
lista = ['aa', 'ab', 'ac']
listb = ['ba', 'bb', 'bc']
listc = ['ca', 'cb', 'cc']
mystruct = {'A':lista, 'B':listb, 'C':listc}
class MyTable(QtGui.QTableWidget):
def __init__(self, thestruct, *args):
QtGui.QTableWidget.__init__(self, *args)
self.data = thestruct
self.setmydata()
def setmydata(self):
n = 0
for key in self.data:
m = 0
for item in self.data[key]:
newitem = QtGui.QTableWidgetItem(item)
if key == 'A':
newitem.setBackground(QtGui.QColor(100,100,150))
elif key == 'B':
newitem.setBackground(QtGui.QColor(100,150,100))
else:
newitem.setBackground(QtGui.QColor(150,100,100))
self.setItem(m, n, newitem)
m += 1
n += 1
def main(args):
app = QtGui.QApplication(args)
table = MyTable(mystruct, 5, 3)
table.show()
sys.exit(app.exec_())
if __name__=="__main__":
main(sys.argv)
약간 수정 된 버전
http://www.saltycrane.com/blog/2006/10/qtablewidget-example-using-python-24/
반응형
'개발 > Python' 카테고리의 다른 글
Python에서 쿼리 문자열을 urlencode하는 방법은 무엇입니까? (0) | 2021.01.07 |
---|---|
URL에서 파이썬 저장 이미지 (0) | 2021.01.07 |
파이썬 사전 업데이트 방법 물어보다 (0) | 2020.10.02 |
localhost (python 요청)에 연결하려고 할 때 CSRF와 관련된 403 오류 발생 (0) | 2020.10.02 |