Russian Qt Forum
Апрель 23, 2024, 21:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вывод текста в QTableWidget (Qt Creator 2.0.1 Основан на Qt 4.7.0)  (Прочитано 11478 раз)
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 правильны в ходе программы...
помогите,пож-та,разобраться!
Записан
Archa4
Гость
« Ответ #1 : Март 23, 2011, 10:48 »

Хм.. мб немного по подробнее - какая цель, что, где и как должно отображаться...
Записан
IzoLda
Гость
« Ответ #2 : Март 23, 2011, 11:53 »

таблица состоит из 2-х столбцов и 2-х строк...имеется файл table формата txt где только одна строка
при выводе в таблицу выводится на первую строку первого столбца число,хотя до него есть слово и оно не выводиться,но считывается в str
хотела чтоб в первый столбец первой строки вывелось слово,а во второй столбец первой строки число...вот и все
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Март 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);
   }
 
}
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
IzoLda
Гость
« Ответ #4 : Март 23, 2011, 11:58 »

а можно по подробнее расписать...Вопросы НОВИЧКОВ!
« Последнее редактирование: Март 23, 2011, 12:00 от IzoLda » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Март 23, 2011, 12:01 »

А можно посмотреть то, что я написал и сравнить со своим вариантом? Я добавил только одну строчку.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
IzoLda
Гость
« Ответ #6 : Март 23, 2011, 12:06 »

зачем создавать раздел для новичков если вам трудно объяснять...и большое спасибо за помощь!!!!все работает...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Март 23, 2011, 12:34 »

Охтыж. Ну я же написал, что ты затираешь значение.
QTableWidgetItem *newItem - указатель на объект.
newItem = new QTableWidgetItem - ты создаешь объект.
При ui->tableWidget->setItem ты назначаешь объекту родителя (строка 0 столбик 1). Т.е. во второй раз ты переназначаешь родителя (строка 0 столбик 2) и по старому местоположению объект удаляется. Т.е. в строке 0 столбике 1 у тебя уже ничего нет.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
IzoLda
Гость
« Ответ #8 : Март 24, 2011, 08:11 »

 Улыбающийся спасибо что все хорошо объяснил...теперь все ясно)))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.069 секунд. Запросов: 22.