У меня есть то, на что я надеюсь, будет простым вопросом. Я хотел бы иметь таблицу, где, щелкая по ячейке, ее фон будет окрашен, а после щелчка снова - неокрашенным (обратно к белому). Идея идентична флажку, но мне не нужен флажок в моей ячейке (если только он не занимает пространство всей ячейки и не расставляет цвета, а не проверяет). Я зациклился на том, как проверить цвет фона ячейки? Если бы я хотел, чтобы другая ячейка получала один и тот же цвет, я подумал о том, чтобы взять цвет фона из цветной ячейки и просто использовать ее в другой ячейке. Я застрял. Я пробовал color(), brushStyle() и, возможно, больше (возможно, неправильно). Я уверен, что это легко для вас, парни :)PyQt4 получить цвет ячейки таблицы
EDIT Несомненно, извините. Я имею в виду QTableWidget, например, так:
table = QtGui.QTableWidget()
table.setRowCount(3)
table.setColumnCount(3)
Я хотел бы получить, скажем, цвет первой ячейки. Я попытался с помощью:
table.setItem(0, 0, QtGui.QTableWidgetItem())
bg = table.item(0, 0).background().color()
print ("R: " + str(bg.red()) + "; G: " + str(bg.green()) + " ; B: " + str(bg.blue()))
Я ожидал получить 255 на все значения RGB, так как я считаю, фон по умолчанию должен быть белым. Цвет по умолчанию белый или нет цвета по умолчанию? Я получаю все нули с этим кодом. Я просто хочу, чтобы иметь возможность сделать заявление:
if (cell is colored)
set cell background to white (default)
else
set color to cell background
EDIT 2: Хорошо так, мне удалось создать решение самостоятельно. Проводя его здесь для любого, кто в этом нуждается, хотя я считаю, что решение не будет большим и, возможно, не будет работать для других целей, кроме моего.
def clickTable(row, column):
if table.item(row, column) == None:
item1 = QtGui.QTableWidgetItem()
item1.setBackground(QtGui.QColor(100,100,150))
table.setItem(row, column ,item1)
else:
table.takeItem(row, column)
Код отвечает:
table.cellClicked.connect(clickTable)
Я знаю, что takeItem может сделать этот код бесполезным для большинства людей, но работал для меня.
Вы должны быть более точными. Что такое «таблица»? Это QTableView? QTableWidget? У вас есть модель? Какая модель? Дайте нам образец вашего кода, который поможет нам помочь вам. – Controlix