Russian Qt Forum

Qt => Вопросы новичков => Тема начата: IzoLda от Март 23, 2011, 08:05



Название: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: IzoLda от Март 23, 2011, 08:05
код программы:
void MainWindow::on_pushButton_2_clicked()
{
    QFile file("C:/Qt/tableW-build-desktop/table.txt");
    if(!file.open(QIODevice::ReadOnly))
        return;
    QTextStream stream(&file);
    while(!stream.atEnd())
    {
        QString str;
        stream >> str;
        QTableWidgetItem *newItem = new QTableWidgetItem;
        newItem->setText(str);
        ui->tableWidget->setItem(0, 1, newItem);
        stream >> str;
        newItem->setText(str);
        ui->tableWidget->setItem(0, 2, newItem);
    }

}
в файле table.txt след. строка "relationship 17"
слово не выводит, только число.Значения переменной str правильны в ходе программы...
помогите,пож-та,разобраться!


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: Archa4 от Март 23, 2011, 10:48
Хм.. мб немного по подробнее - какая цель, что, где и как должно отображаться...


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: IzoLda от Март 23, 2011, 11:53
таблица состоит из 2-х столбцов и 2-х строк...имеется файл table формата txt где только одна строка
при выводе в таблицу выводится на первую строку первого столбца число,хотя до него есть слово и оно не выводиться,но считывается в str
хотела чтоб в первый столбец первой строки вывелось слово,а во второй столбец первой строки число...вот и все


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: Пантер от Март 23, 2011, 11:56
Ну так все правильно. Ты же затираешь значение.
Код
C++ (Qt)
void MainWindow::on_pushButton_2_clicked()
{
   QFile file("C:/Qt/tableW-build-desktop/table.txt");
   if(!file.open(QIODevice::ReadOnly))
       return;
   QTextStream stream(&file);
   while(!stream.atEnd())
   {
       QString str;
       stream >> str;
       QTableWidgetItem *newItem = new QTableWidgetItem;
       newItem->setText(str);
       ui->tableWidget->setItem(0, 1, newItem);
       stream >> str;
       newItem = new QTableWidgetItem;
       newItem->setText(str);
       ui->tableWidget->setItem(0, 2, newItem);
   }
 
}
 


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: IzoLda от Март 23, 2011, 11:58
а можно по подробнее расписать...Вопросы НОВИЧКОВ!


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: Пантер от Март 23, 2011, 12:01
А можно посмотреть то, что я написал и сравнить со своим вариантом? Я добавил только одну строчку.


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: IzoLda от Март 23, 2011, 12:06
зачем создавать раздел для новичков если вам трудно объяснять...и большое спасибо за помощь!!!!все работает...


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: Пантер от Март 23, 2011, 12:34
Охтыж. Ну я же написал, что ты затираешь значение.
QTableWidgetItem *newItem - указатель на объект.
newItem = new QTableWidgetItem - ты создаешь объект.
При ui->tableWidget->setItem ты назначаешь объекту родителя (строка 0 столбик 1). Т.е. во второй раз ты переназначаешь родителя (строка 0 столбик 2) и по старому местоположению объект удаляется. Т.е. в строке 0 столбике 1 у тебя уже ничего нет.


Название: Re: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)
Отправлено: IzoLda от Март 24, 2011, 08:11
 :) спасибо что все хорошо объяснил...теперь все ясно)))