LINUX.ORG.RU

QTable, изменение шрифта отдельных ячеек


0

0

В Qt-форме есть QTable. Причём форма нарисована в QT Designer. Нужно отдельные ячейки QTable выделять курсивом. Нашёл, как это сделать переопределением paintCell. Проверил на простейшем примере, в котором такая MyTable (потомок QTable с модифицированным paintCell) создаётся через "MyTable* table = new MyTable( 10, 10, 0 );". Работает. Но как этого добиться при использовании Qt Designer и ui-файлов?

anonymous

Только средствами Designer'а, AFAIK, никак. Чтобы не создавать таблицу в коде, можно сделать наследника от QTableItem со своим методом paint и добавлять в их таблицу через QTable::setItem().

Shmuma
()
Ответ на: комментарий от Shmuma

Понял. На http://lists.trolltech.com/qt-interest/2005-03/thread00097-0.html даже есть пример. Но у меня есть тонкость: таблица время от
времени обновляется, да так, что число строк может меняться. Поэтому -
вопрос к коду

	 for(int i=0; i<mytable->numRows(); i++) {
		  for(int j=0; j<mytable->numCols(); j++) {
				TextItem *ti=new TextItem(mytable);
				mytable->setItem(i,j,ti);
				ti->setFirstText(...);
		  }
	 }

Что будет при этом с многочисленными TextItem? Им надо делать delete,
чтоб память не текла (соответствено, создавать под них динамический
массив и пр.)?

anonymous
()
Ответ на: комментарий от anonymous

Проверил. Действительно, память течёт. Сделал динамический массив, перед обновлением таблицы в цикле - delete. Теперь не течёт.

anonymous
()
Ответ на: комментарий от Shmuma

Меняется. Причём и число строк, и число столбцов. Потому и пришлось париться. Но сейчас уже всё прекрасно работает :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.