Найти - Пользователи
Полная версия: PyQt4 + Python3. QTableWidget.addItem Как в ячейку поместить значение?
Начало » GUI » PyQt4 + Python3. QTableWidget.addItem Как в ячейку поместить значение?
1
Пытон
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_())
1. Как поместить значение в ячейку с указанными координатами? setItem(0,0, “Покусаю!”) не работает.
2. Возможно ли сразу вставить список как строку таблицы? Каждый элемент списка в отдельный столбец, по порядку.
Пытон
qitem = QtGui.QTableWidgetItem("бабац!")
form.table.setItem(0,0, qitem)
Вот как сделал. Бяка! Не люблю такие заморочки!
Кстати
qitem = QtGui.QTableWidgetItem(14)
цифру в ячейку не поместит. QTableWidget принимает только строковые значения?
Пытон
Почему это работает, в 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_())
Пытон
Ау? Кто-нибудь дома?
Пытон
Я всё ещё надеюсь на ответ.
Studentik
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);
}
}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB