crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Контейнеры
yasik.box
  опции профиля:
сообщение 25.2.2009, 13:21
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 25.2.2009
Пользователь №: 576

Спасибо сказали: 0 раз(а)




Репутация:   0  


Я еще совсем зеленый в QT.
У меня вопрос.

У меня несколько форм в приложении, в каждой форме пользователь выбирает определенные параметры (это будет текст из разных виджетов).
Есть ли какой нибуть "контейнер" в QT в который я буду добавлять эти параметры с разных форм. А потом еще и выбирать из него нужные. Если есть то как правильно его описать?
Или я сильно загнул и хочу сильно многово ???

Ну если чем можете - помогите - подскажите как можно реализовать эту идею. Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 25.2.2009, 13:40
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


yasik.box,
набери в ассистенте
Цитата
container class

очень много вариантов использования различный контейнеров.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 25.2.2009, 13:42
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3289
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Все зависит от того, как именно ты хочешь хранить и выбирать данные параметры.
Можно просто воспользоваться QList или QMap или сделать структуру, в которой будет храниться параметр, какой форме он принадлежит, дополнительные данные и хранить их в тех же QList или QMap.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
yasik.box
  опции профиля:
сообщение 26.2.2009, 11:07
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 25.2.2009
Пользователь №: 576

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 25.2.2009, 13:42) *
Все зависит от того, как именно ты хочешь хранить и выбирать данные параметры.
Можно просто воспользоваться QList или QMap или сделать структуру, в которой будет храниться параметр, какой форме он принадлежит, дополнительные данные и хранить их в тех же QList или QMap.


Почитал про QMap, это то что мне нужно. Как раз нужно мне хранить параметры по определенному индексу.

Я задекларировал функцию которую вызываю по сигналу какого нибудь виджета и в зависимости от виджета в QMap добавляются нужные параметры для хранения.
На одной форме все как по маслу !!!
Но когда я пробую передать в контейнер QMap параметры по сигналу в другой форме, то вылетает такая ошибка:
D:/C++/myprojetc/second.cpp:33: error: cannot call member function `void myform::options(QString, QString)' without object

Подскажите, как добиться нужного мне результата???
Код организован таким образом:

Проект из 2-х форм (myform, second)
myform.h
public slots:
void options(QString, QString);   //-- функция

[b]myform.cpp[/b]

void myform::options(QString s1, QString s2)
{
    QMap<QString, QString> opts;
    opts.insert(s1, s2);
    
}


На второй форме в second.cpp
Вложил #include "myform.h"

И после по сигналу кнопки пробую добавить в контейнер:

void second::on_pushButton_clicked()
{
QString text = m_ui->lineEdit->text();

myform::options("2",text);  //-- вот тут то и пишет мне ошибку (я ее описал в начале)

}


Подскажите, может я что то не так делаю, или так вообще нельзя, в один контейнер с разных форм ???
Спасибо.
Причина редактирования: используй тэг code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.2.2009, 11:18
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(yasik.box @ 26.2.2009, 14:07) *
myform::options("2",text); //-- вот тут то и пишет мне ошибку (я ее описал в начале)
это не статическая функция.

и раз уж это слот, то создай сигнал в классе second с тойже сигнатурой, что и слот, соедени сигнал со слотом в конструкторе second, а в second::on_pushButton_clicked(), пошли свой сигнал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 26.2.2009, 11:20
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


yasik.box,

myform::options("2",text);

это же слот а не статическая функция.
объект нужен чтоб вызвать слот либо соединить его с сигналом.

попробуй написать сигнал с параметрами 2 строки во второй форме и высылать его когда необходимо.
связать сигнал с твоим слотом options().
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
yasik.box
  опции профиля:
сообщение 26.2.2009, 13:35
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 25.2.2009
Пользователь №: 576

Спасибо сказали: 0 раз(а)




Репутация:   0  


А можно пример.
Не получается у меня чего-то.

Если вам не сложно, по моему примеру, напишите как должно быть, что б я наконец увидел всю картину и все стало на свои места.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.2.2009, 13:51
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(yasik.box @ 26.2.2009, 16:35) *
что б я наконец увидел всю картину и все стало на свои места.
вот картинку ты нам нарисуй, а мы поправим.
как сейчас у тебя классы myform и second завязаны?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
yasik.box
  опции профиля:
сообщение 26.2.2009, 14:20
Сообщение #9


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 25.2.2009
Пользователь №: 576

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 26.2.2009, 14:51) *
Цитата(yasik.box @ 26.2.2009, 16:35) *
что б я наконец увидел всю картину и все стало на свои места.
вот картинку ты нам нарисуй, а мы поправим.
как сейчас у тебя классы myform и second завязаны?



Цитата
myform
Здесь Реализация функции options которая получает 2 строчки и добавляет их в контейнер
Button --> Нажали --> SLOT(options(QString s1, QString s2)) -- передали в функцию, она обработала



second
Отсюда я решил что можно нажать на кнопку и она передаст другие 2 строчки только для обработки в функцию что находиться в myform и тот же контейнер примет новые параметры с другой формы. И т.д.

Вот такой принцип я думал реализовать - если есть попроще - подскажите.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.2.2009, 14:44
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9655
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


логика работы это одно, а взаимодействие классов другое.

где создаются экземпляры классов myform и second? Где кнопки?

yasik.box, рекомендую забросить Дизайнер подальше - быстрее с Qt разберешся.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 21.7.2019, 20:31