Название: Перенос данных из ComboBox на след. страничку
Отправлено: TheOne* от Сентябрь 21, 2011, 14:36
Ребята, помогите пожалуйста разобраться. Диплом в универе задали в Qt С++ писать, на сварочном факультете...Я научился пока что делать переход из одной формы в другую ;D А у меня к вам вопрос такой, во второй форме будут формулы которые будут использовать данные, которые лежат в ComboBox в первой форме. Каким образом мне привязать эти значения к формулам во второй форме???? Спасайте, буду вам благодарен!!!
Название: Re: Перенос данных из ComboBox на след. страничку
Отправлено: Fess от Сентябрь 21, 2011, 16:51
форма с данными dataform.h class DataForm : public QDialog { ... public: double param(); public slots: void showActionForm(); ... };
dataform.cpp #include "dataform.h" #include "actionform.h" ... double DataForm::param() { return ui->comboBox->currentText()->toDouble(); }
void DataForm::showActionForm() { ActionForm actionForm(this); actionForm.exec(); } ...
форма с формулами actionform.h #include "dataform.h"
class ActionForm : public QDialog { ... protected: DataForm* mpDataForm; ... public: ActionForm(DataForm* pDataForm); public slots: void DoSomethingAnything(); ... };
actionform.cpp #include "actionform.h" #include "dataform.h"
... ActionForm::ActionForm(DataForm* pDataForm) : QDialog(pDataForm) , mpDataForm(pDataForm) { }
void ActionForm::DoSomethingAnything() { double param = mpDataForm->param(); //have some fun with data ;) } ...
Название: Re: Перенос данных из ComboBox на след. страничку
Отправлено: Даниил от Сентябрь 22, 2011, 10:00
Диплом в универе задали в Qt С++ писать, на сварочном факультете...
;D Упал под стол ...
Название: Re: Перенос данных из ComboBox на след. страничку
Отправлено: Pretorean от Сентябрь 22, 2011, 12:42
Диплом в универе задали в Qt С++ писать, на сварочном факультете...
;D Упал под стол ... ну а чо, я тоже сварку заканчивал
Название: Re: Перенос данных из ComboBox на след. страничку
Отправлено: Yuriy от Сентябрь 22, 2011, 18:13
А я заканчивал электрооборудование судов, но к делу это не относится. Обычно для хранения большого кол-ва данных я использую статические функции в отдельном классе, не привязанные ни к одной форме: Класс values / values.h: #ifndef VALUES_H #define VALUES_H
//Здесь создаю структуры, доступные также для других классов, например //Описание категорий материалов typedef struct _MaterialCategory MaterialCategory;
struct _MaterialCategory{ int number; QString name; } ;
//Далее описание самого класса class values {
public:
static int getMoveMode(); static bool getLimitMode(); static bool getAntialiasMode(); static bool getConturLineMode(); static QString getBinDir();
static void setMoveMode(const int &aMode); static void setLimitMode(const bool &aLimit); static void setAntialiasMode(const bool &aAlias); static void setConturLineMode(const bool &aLineMode); static void setBinDir(const QString &aBindDir);
};
#endif // VALUES_H
В файле values.cpp: #include "values.h" static int MoveMode = 1; static bool LimitMode = true; static QString myBinDir; static QString ModelPath; static QHash<QString,QString> DBVarValues; static QQueue<QString> VarValues; static QString TextureDir; static QString TmpPath; static QString last_command; //Последняя команда static QString LastCoordinate; //Это последние введенные координаты static QString LastMacrosDir; //Директория для загрузки макросов static int myViewMode = 0; static int myTransparency = 0;
//и т.д.
//методы get int values::getMoveMode() { return MoveMode; }
bool values::getLimitMode() { return LimitMode; }
bool values::getAntialiasMode() { return myAntialising; }
bool values::getConturLineMode() { return myConturDisplay; }
//методы set
void values::setAntialising(const bool &aCurrent) { myAntialising = aCurrent; }
void values::setConturDisplay(const bool &aCurrent) { myConturDisplay = aCurrent; }
void values::setViewMode(const int &aViewMode) { myViewMode = aViewMode; }
//и т.д.
Для использования такого класса достаточно вызвать в любом классе values::getMode() или values::setMode(0); На практике такие статические классы очень скоростные для хранения данных.
|