Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Модель/Представление _ Помогите реализовать диалог ввода данных

Автор: AntonTatu 16.12.2010, 12:09

Запутался совсем, можно ли в моем случае использовать модель / представление для ввода данных, подтолкните в правильном направлении..

Задача такая, есть класс в который необходимо записывать следующие данные данные:

Раскрывающийся текст
class myclass
{
    
public:
    myclass();
    ~myclass();
    QString numgrup; //название группы
    QString modelgrup; //используемая модель
    QString spisokuzlov; //список узлов
    QVector < QVector <QString> > parametri; //параметры модели
};

в конце концов на выходе из программы должен получится вектор содержащий столько введенных групп сколько необходимо пользователю..
QVector <myclass> vec_dannih;

ввод данных осуществляется в следующем диалоге:

причем для каждой группы таблица заполняется в зависимости от того сколько чисел введено в список узлов, к примеру если ввели 3 числа, то в таблице будет 3 строчки, если 5 чисел то 5 строчек....
вот пока что сделал, а дальше просто в ступоре.... очень помощь нужна...
 dialogOOP.zip ( 5.21 килобайт ) : 145


Автор: wiz29 16.12.2010, 12:38

QItemDelegate должен помоч с твоей задачей.

Автор: AntonTatu 16.12.2010, 15:28

Цитата(wiz29 @ 16.12.2010, 12:38) *
QItemDelegate должен помоч с твоей задачей.


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

Автор: wiz29 16.12.2010, 16:19

Попробуй тогда QTableWidget использовать, если сложно или лень разбираться в модель/представлении. Там все попроще.

Автор: AntonTatu 16.12.2010, 16:45

Цитата(wiz29 @ 16.12.2010, 16:19) *
Попробуй тогда QTableWidget использовать, если сложно или лень разбираться в модель/представлении. Там все попроще.


дело не в лень..., знаний не хватает... придется опять велосипед изобретать... (который у меня будет уже итак не первый) ну к примеру как вариант:
использовать созданный вектор - класса для хранения введенных вариантов
при нажатии new сделать его ресайз на 1, и заносить в него все введенные значения с формы
нужную мне таблицу делать из QTableWidget (увеличивать количество строчек в таблице по сигналам-слотам или с помощью делегата для "поля ввода списка узла группы") и при создании новой группы заносить введенную инфу из таблице так же в vec_dannih.at(i).parametri
ну конечно еще и сигналы - слоты еще какие нибудь наверно прикручивать придется....


но мне кажется можно все это сделать более "правильно - понятно", а вот модель - представление не осилить....


PS: но все равно wiz29 спасибо за участие...

Автор: wiz29 16.12.2010, 18:19

ну дык Qt не предоставляет решения на все случаи жизни:) Что то нужно написать и самому:)

Автор: FantasyOr 17.12.2010, 15:37

Вопрос к AntonTatu, зачем вы используете vector, у Вас динамический массив "...при нажатии new сделать его ресайз на 1, и заносить в него все введен...", Qt обладает прекрасным классом QList<T>

Пример:
QList<T> myTList;

T newT1;
T newT2;
T newT3;

myTList <<newT1 <<newT2 <<newT3;

модель-представление в к Вашей задачи как раз подойдет, т.б все равно придется разбираться с этим механизмом.
Если я в чем-то ошибаюсь, то профи меня поправят

Автор: Гость_AntonTatu_* 17.12.2010, 19:40

Цитата(FantasyOr @ 17.12.2010, 15:37) *
Вопрос к AntonTatu, зачем вы используете vector, у Вас динамический массив "...при нажатии new сделать его ресайз на 1, и заносить в него все введен...", Qt обладает прекрасным классом QList<T>
Пример:
QList<T> myTList;

T newT1;
T newT2;
T newT3;

myTList <<newT1 <<newT2 <<newT3;

модель-представление в к Вашей задачи как раз подойдет, т.б все равно придется разбираться с этим механизмом.
Если я в чем-то ошибаюсь, то профи меня поправят


спс, я сегодня уже подумал что QList будет лучше использовать, пытаюсь сделать "велосипед", пока не понял как с моделью представлением мою задачу решить...

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)