Форум сайта python.su
from PyQt4 import QtCore, QtGui, uic
import sys
app = QtGui.QApplication(sys.argv)
form = uic.loadUi("table.ui")
form.table.setColumnCount(4)
headerslist = ["Первый", "Второй", "Третий", "Четвёртый"]
form.table.setHorizontalHeaderLabels(headerslist)
form.table.insertRow(0)
form.table.insertRow(1)
form.table.Я ему говорю: значение надо в ячейку поместить, допустим в (0,0). А он говорит: перебьёшься! Мне недосуг.
form.show()
sys.exit(app.exec_())
Отредактировано (Ноя. 29, 2011 08:34:16)
Офлайн
qitem = QtGui.QTableWidgetItem("бабац!")
form.table.setItem(0,0, qitem)
qitem = QtGui.QTableWidgetItem(14)
Офлайн
Почему это работает, в pr помещается текст текущей ячейки,
pr = form.table.currentItem().text()
pr2 = QtGui.QTableWidgetItem("ТЫНЦ!")
form.table.setCurrentItem(pr2)
from PyQt4 import QtCore, QtGui, uic
import sys
def bumba():
pr = form.table.currentItem().text()
print(pr)
pr2 = QtGui.QTableWidgetItem("ТЫНЦ!")
form.table.setCurrentItem(pr2)
form.table.setItem(0,0, pr2)
app = QtGui.QApplication(sys.argv)
form = uic.loadUi("table.ui")
form.table.setColumnCount(4)
headerslist = ["Первый", "Второй", "Третий", "Четвёртый"]
form.table.setHorizontalHeaderLabels(headerslist)
form.table.insertRow(0)
form.table.insertRow(1)
valueslist = ["1-бум","2-хлоп","3-бац","4-грох","5-бамс","6-тыдыщ","7-бабах","8-трах"]
iii = 0
for i in valueslist:
for ii in range(0,4):
qitem = QtGui.QTableWidgetItem(i)
form.table.setItem(ii,iii, qitem)
iii+=1
form.table.itemClicked.connect(bumba)
form.show()
sys.exit(app.exec_())
Офлайн
Ау? Кто-нибудь дома?
Офлайн
Я всё ещё надеюсь на ответ.
Офлайн
setCurrentItem делает не то, что setItem, а делает текущим item, переданный в параметре функции
void QTableWidget::setCurrentItem(QTableWidgetItem *item)
{
Q_D(QTableWidget);
setCurrentIndex(d->tableModel()->index(item));
}
void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)
{
Q_D(QTableWidget);
if (item) {
if (item->view != 0) {
qWarning("QTableWidget: cannot insert an item that is already owned by another QTableWidget");
} else {
item->view = this;
d->tableModel()->setItem(row, column, item);
}
} else {
delete takeItem(row, column);
}
}
Офлайн