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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTable  (Прочитано 4017 раз)
mazol
Гость
« : Февраль 21, 2010, 12:40 »

Создал TableWidget, количество строк и столбцов вводится пользователем с помощью SpinBox.
И при запуске во всех строчках должна появиться последовательность Фибоначчи. Первые 2 столбца я заполнил "1", а дальше не знаю, как брать предыдущий елемент и к нему прибавлять предыдущий предыдущего:)
void MainWindow::go(){
    for (int k=0; k<table->rowCount()+1; k++){
        for (int n=0; n<2; n++){
            QTableWidgetItem *item = new QTableWidgetItem("1");
            table->setItem(k,n,item);
        }
    }
   for (int i=0; i<table->rowCount()+1; i++){
        for (int j=2; j<table->columnCount()+1; j++){
            QTableWidgetItem *item2 = table->takeItem(i,j);
            QTableWidgetItem *item3 = table->takeItem(i,j+1);
            int a=item2+item3;
            table->setItem(i,j+3,a);
        }
    }
}
Записан
alexman
Гость
« Ответ #1 : Февраль 21, 2010, 13:09 »

1. Название темы нужно писать корректно (не отображает сути вопроса!).
2. Для последовательности Фибоначчи базис имеет два начальных значения 1,1.
3. Честно говоря не понятно, что требуется, но если я правильно понял, то чтобы получить столбец Фибонначи требуется:
Код:
  table->item( 0, 0 )->setText( "1" );
           table->item( 1, 0 )->setText( "1" );
           for ( int i = 2; i < table->rowCount(); ++i ) {
               QTableWidgetItem* item1 = table->item(i - 2,0);
               QTableWidgetItem* item2 = table->item(i - 1,0);
               table->item(i,0)->setText( QString( "%1" ).arg( item1->text().toInt() + item2->text().toInt() ) );
           }
4. Лучше использую модели.
Записан
mazol
Гость
« Ответ #2 : Февраль 22, 2010, 01:40 »

Первый раз создавал, в следуйщий раз учту. нужно в строке записать последовательность Фибоначчи, что-то ваш код тоже не конпилируется Грустный
Записан
mazol
Гость
« Ответ #3 : Февраль 22, 2010, 23:23 »

help!:(
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Февраль 22, 2010, 23:38 »

А если "мухи отдельно - борщ отдельно"? Есть расчеты и есть UI. Смешивать их - всегда плохо. Так что посчитайте последовательность Фибоначчи используя любой контейнер (std::vector,  QVector, QList и.т.п.) а потом, используя посчитанный контейнер как data model, заполните таблицу. И все будет гуд и займет пол-часа.
Записан
mazol
Гость
« Ответ #5 : Февраль 23, 2010, 00:44 »

А если "мухи отдельно - борщ отдельно"? Есть расчеты и есть UI. Смешивать их - всегда плохо. Так что посчитайте последовательность Фибоначчи используя любой контейнер (std::vector,  QVector, QList и.т.п.) а потом, используя посчитанный контейнер как data model, заполните таблицу. И все будет гуд и займет пол-часа.
ну посчитать в QVector i QList  я смог бы, но а дата модел - первый раз слышу, мы ще не проходили такое Грустный
Записан
SABROG
Гость
« Ответ #6 : Февраль 23, 2010, 00:50 »

Это в каком заведении Qt преподают? Шокированный
Записан
mazol
Гость
« Ответ #7 : Февраль 23, 2010, 00:51 »

универ мой, ХАИ (Харьковский авиационный инстититут)  Смеющийся Смеющийся
Записан
mazol
Гость
« Ответ #8 : Февраль 23, 2010, 21:01 »

ну так, что? помогите с кодом, очень нужно!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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