crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Поведение grid в QTableView
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 18.3.2009, 12:20
 
Цитата(LE0N @ 18.3.2009, 13:37) *
Когда удаляешь строки, они не удаляются пока не сделаешь субмит
ну это ручной режим, и при добавлениии и при изменении данных.
LE0N Дата 18.3.2009, 10:37
 
Цитата
Не могу найти в документации, как управлять навигацией по таблице... Все же английский язык не родной... Не подскажите, где смотреть? Заранее благодарен...

http://www.doc.crossplatform.ru/qt/4.4.3/m...-selection.html
Цитата
А можно ли сделать так, чтобы изменения строки отсылались на сервер в фоновом режиме, а представление не перезагружалось? Я пришел в Qt из Visual FoxPro. Там представления работают именно так, очень удобно, особенно при медленных каналах связи...

Можно вообще отправлять данные самому. В тот момент, когда нужно тебе.
Смотри функцию model.setEditStrategy
Только небольшой неприятный ньюанс... Когда удаляешь строки, они не удаляются пока не сделаешь субмит :(
mva Дата 18.3.2009, 8:11
 
Цитата(Litkevich Yuriy @ 17.3.2009, 20:26) *
А вот и причина такого поведения:
Цитата(mva @ 17.3.2009, 22:49) *
model.setEditStrategy(QSqlTableModel::OnRowChange);
при такой стратегии всегда будет себя так вести. Так как представление постоянно перезагружеатся.


А можно ли сделать так, чтобы изменения строки отсылались на сервер в фоновом режиме, а представление не перезагружалось? Я пришел в Qt из Visual FoxPro. Там представления работают именно так, очень удобно, особенно при медленных каналах связи...



Цитата(Kagami @ 17.3.2009, 23:39) *
Цитата(Litkevich Yuriy @ 17.3.2009, 20:26) *
.
Цитата(mva @ 17.3.2009, 11:46) *
вместо того, чтобы перейти на следующий справа элемент.
а такого поведения в Qt вообще нет.

Но его можно легко сделать самому :)


Не могу найти в документации, как управлять навигацией по таблице... Все же английский язык не родной... Не подскажите, где смотреть? Заранее благодарен...
Kagami Дата 17.3.2009, 23:39
 
Цитата(Litkevich Yuriy @ 17.3.2009, 20:26) *
.
Цитата(mva @ 17.3.2009, 11:46) *
вместо того, чтобы перейти на следующий справа элемент.
а такого поведения в Qt вообще нет.

Но его можно легко сделать самому :)
Litkevich Yuriy Дата 17.3.2009, 20:26
  первое, что бросается в глаза
Цитата(mva @ 17.3.2009, 22:49) *
QTableView pgrdTable;
QSqlTableModel model;
используй динамическое создание объектов.

А вот и причина такого поведения:
Цитата(mva @ 17.3.2009, 22:49) *
model.setEditStrategy(QSqlTableModel::OnRowChange);
при такой стратегии всегда будет себя так вести. Так как представление постоянно перезагружеатся.
Цитата(mva @ 17.3.2009, 11:46) *
вместо того, чтобы перейти на следующий справа элемент.
а такого поведения в Qt вообще нет.
mva Дата 17.3.2009, 19:49
 
код
class Form: public QDialog {
    Q_OBJECT
public:
    Form(QWidget* pwgt = 0);
    void Show() { DoShow(); }
    bool Selected() { return lSelected; }
public slots:
    void cmdOk() { DoCmdOk(); }
protected:
    bool lSelected;
    QHBoxLayout* pcmdButtonLayout;
    QVBoxLayout* pvbxLayout;
    virtual void DoShow();
    virtual void DoCmdOk();
    };

class FormGrid : public Form {
public:
    FormGrid();
private:
    QTableView pgrdTable;
    QSqlTableModel model;
};

FormGrid::FormGrid() {
    model.setTable("адрес");
    model.setEditStrategy(QSqlTableModel::OnRowChange);
    model.select();
    model.setHeaderData(0, Qt::Horizontal, tr("Код"));
    model.setHeaderData(1, Qt::Horizontal, tr("Имя"));
    pgrdTable.setModel(&model);
    pgrdTable.sortByColumn(0, Qt::AscendingOrder);
    pvbxLayout->insertWidget(0, &pgrdTable);
}


.....
    FormGrid form;
    form.Show();
.....
Litkevich Yuriy Дата 17.3.2009, 14:34
 
Цитата(mva @ 17.3.2009, 11:46) *
После изменения элемента таблички после нажания на Enter пропадает курсор
а каковы настройки поведения модели и представления? приведи код.
mva Дата 17.3.2009, 8:46
  Добрый день всем!

Редактирую табличку с помощью связки QSqlTableModel и QTableView. После изменения элемента таблички после нажания на Enter пропадает курсор (указатель текущего элемента Grid) вместо того, чтобы перейти на следующий справа элемент. Конечно, мышкой можно вернуть курсор на место, но это немного не то, что хотелось... Почему пропадает курсор?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 12:51