Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt QTableWidget.cellChanged вызывается на setBackground()? [RSS Feed]

#1 Фев. 13, 2011 00:42:57

Studentik
От:
Зарегистрирован: 2009-12-26
Сообщения: 99
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt QTableWidget.cellChanged вызывается на setBackground()?

День добрый!

Вот такой вот код для PyQt 4.8, Python 3.1:

from PyQt4 import Qt as qt
import sys

app = qt.QApplication(sys.argv)
mw = qt.QMainWindow()
fr = qt.QFrame()
lt = qt.QVBoxLayout()
btn = qt.QPushButton("green")
tw = qt.QTableWidget()
ti=qt.QTableWidgetItem("Item text")

mw.setCentralWidget(fr)
fr.setLayout(lt)
lt.addWidget(tw)
lt.addWidget(btn)
tw.setRowCount(1)
tw.setColumnCount(1)
tw.setItem(0,0,ti)

def cellchange(row, column):
ti = tw.item(row,column)
ti.setBackground(qt.QBrush(qt.QColor("yellow")))

def changeback(checked):
ti = tw.item(0,0)
ti.setBackground(qt.QBrush(qt.QColor("green")))

tw.cellChanged.connect(cellchange)
btn.clicked.connect(changeback)

mw.show()
app.exec_()
Когда нажимаю кнопку green ожидаю увидеть зеленый цвет, но вижу желтый. Где ошибка? Спасибо!

П.С. В доках на сигнал QTableWidget.cellChanged написано так: This signal is emitted whenever the data of the item in the cell specified by row and column has changed.



Офлайн

  • Начало
  • » GUI
  • » PyQt QTableWidget.cellChanged вызывается на setBackground()?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version