Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: n4ela от Май 07, 2009, 00:32



Название: QTableWidget horizontalHeaderItem
Отправлено: n4ela от Май 07, 2009, 00:32
В дизайнере создал QTableWidget и QComboBox.
В боксе цифры 1-9
Создал слот
Код
C++ (Qt)
void MainWindow::on_comboBox_X_currentIndexChanged(QString a)
{
   ui->tableWidget->setColumnCount( a.toInt() );
   for ( int i = 0; i < a.toInt(); i++ )
       ui->tableWidget->horizontalHeaderItem( i )->setText( QString::fromLocal8Bit( "Тест"));
}
 
Но почему то не работает. При изменение бокса программа вылетает. Дебагер выдает ошибку на строчку setText
Я что то не так делаю?


Название: Re: QTableWidget horizontalHeaderItem
Отправлено: ¤Se®ega¤ от Май 07, 2009, 02:14
попробуй через
setText(QApplication::translate("MainForm", "10", 0, QApplication::UnicodeUTF8));

MainForm- objectName главного виджета.


Название: Re: QTableWidget horizontalHeaderItem
Отправлено: n4ela от Май 07, 2009, 10:16
Попробовал, ни чего не изменилось. Так же вылетает.


Название: Re: QTableWidget horizontalHeaderItem
Отправлено: pastor от Май 07, 2009, 11:40
Очевидно, что ui->tableWidget->horizontalHeaderItem( i ) возвращает 0


Название: Re: QTableWidget horizontalHeaderItem
Отправлено: n4ela от Май 07, 2009, 14:26
Я не пойму что не так то?
Код
C++ (Qt)
ui->tableWidget->setColumnCount( 3 );
//Создаю 3 колонки. т.е. 0 1 2
ui->tableWidget->horizontalHeaderItem( 1 )->setText(QString::fromLocal8Bit("Тест"));
//Пишу в колонки 1 . т.е. второй по счету  Тест
 
И все равно вылетает с ошибкой. Но почему? Я же не за какие границы не вылазию, и точно не пытаюсь писать в несуществующие колонку.


Название: Re: QTableWidget horizontalHeaderItem
Отправлено: spirit от Май 07, 2009, 14:29
так надо создать этой айтем, либоже заюзать метод QTableWidget::setHorizontalHeaderLabels.


Название: Re: QTableWidget horizontalHeaderItem
Отправлено: n4ela от Май 07, 2009, 14:52
Точно. Спасибо большое. В следующий раз буду внимательнее.


Название: Re: QTableWidget horizontalHeaderItem
Отправлено: pastor от Май 07, 2009, 15:06
И все равно вылетает с ошибкой. Но почему? Я же не за какие границы не вылазию, и точно не пытаюсь писать в несуществующие колонку.

Читаем внимательно:

Цитировать
QTableWidgetItem * QTableWidget::horizontalHeaderItem ( int column ) const
Returns the horizontal header item for column, column, if one has been set; otherwise returns 0.