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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 3 [4]
46  Qt / Базы данных / Re: Внешний вид таблицы результатов : Январь 11, 2015, 23:05
на 3 вопрос: Скорее всего у тебя в qTableView стоит только для чтения. Посмотри тригеры вьюхи.
47  Qt / Базы данных / как зафиксировать формат даты в Table view для разных БД : Июль 10, 2014, 22:23
Стучал в бубен, но так и не обнаружил решения.
Имеем QSqlTableModel+QTableView. В БД имеется поле date.
При использовании Sqlite в TableView видим 10-12-2014, используем Mysql и видим 2014.12.10.
В каком месте надо подкрутить, чтобы видеть  10.12.2014 независимо от используемой БД?
48  Qt / Базы данных / Re: Не работает запрос добавления строки в таблицу : Январь 22, 2014, 21:03
Смотря твои разные темы я понимаю, что ты используешь для отображения вьюху, но все остальное делаешь в рукопашную через прямые запросы.
Чего не работаешь через модель? Строит глазки С ней кода будет меньше.
Combobox заполнишь просто:
QSqlTableModel model;
model.setTable("Имя таблицы");
combobox.setModel(model);
combobox.setModelColumn(номер столбца таблицы);
model.select();
Всё заполнено.
Как вставлять и удалять в таблице я тебя уже писал тебе
49  Qt / Базы данных / Re: Получение данных из компонента tableView : Январь 22, 2014, 20:47
Ты очень длинно делаешь это путем прямых вызовов.
Если у тебя есть модель, то и работай с моделью.
Команда для удаления выбранной в tableview строки с использованием модели делается вот так:
model.removeRow(ui->tableView->currentIndex.row());
Зачем городить такой большой огород как у тебя мне непонятно. Непонимающий

для получения значения конкретной ячейки в представлении можно использовать:
model.record(индекс строки).value(номер или имя столбца).в какой тип преобразуем (например toString, toInt).
50  Qt / Базы данных / Re: добавление записи в таблицу из компонента combobox : Январь 08, 2014, 11:48
Доброго времени суток.
у меня в программе есть 3 комбобокса
В первом пользователь выбирает код вуза- kodsv
Во втором выбирает государственный код - kodg
В третьем Квалификацию - kodk
После нажатия кнопки "запись" в таблицу KOD
Должны записатся записи из этих комбобоксов...
Как это можно сделать есть у кого идеи? Жеталельно с кодом примерным...

А что ты хочешь записать текстовые значения, индексы выбранных значений или все вместе?

в любом случае это в общих чертах будет выглядить так (если действовать через модель):

int row=0;
model.insertrows(0,1);
model.setdata(model.index(row,номер столбца), kodsv.currenttext()); //если получаем текст из комбобокса
model.setdata(model.index(row,номер столбца), kodsv.currentindex()); //если получаем текущий индекс
//дальше проходимся по всем полям и комбобоксам
model.submit(); //записываем значения в таблицу

51  Qt / Базы данных / Re: Странное поведение QSqlTableModel + TableView : Декабрь 08, 2012, 12:08
секрет оказался прост. Улыбающийся Причина не работы кода в одном из случаев - заполнение базы. Если модель через setData добавляет строки, но количество заносимых значений меньше чем столбцов в таблице, то удаление потом на этих строках работать не будет. При этом отображаться будет так, как-будто все поля вводятся. Вот так вот  В замешательстве.
52  Qt / Базы данных / Re: Странное поведение QSqlTableModel + TableView : Декабрь 06, 2012, 22:11
А что это принципиально поменяет?
53  Qt / Базы данных / Странное поведение QSqlTableModel + TableView : Декабрь 06, 2012, 21:38
Столкнулся с такой бедой. Ниже приведенный код удаляет в одной модели и таблице, а на другой связке говорит что индекс строки неверен.
void LSostav::on_toolButton_26_clicked()
{
    if(ui->ListDelo->currentIndex().isValid())
    {
        int ret = QMessageBox::warning(this, tr("Внимание"),
                                       tr("Данная операция удалит запись из базы данных. Продолжить?"),
                                       QMessageBox::Yes | QMessageBox::No,
                                       QMessageBox::No);
        qDebug()<<ret;
        if(ret==QMessageBox::Yes){
        model_list->removeRow(ui->ListDelo->currentIndex().row()); //а вот тут и засада
}
}}

модели нигде не пересекаются и вьюхи разные. Т.е. один и тот же код в разных слотах работает по разному Обеспокоенный
Что я делаю не так?
Страниц: 1 2 3 [4]

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