crossplatform.ru

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

> arkInputDialog, Класс класс arkInputDialog для генерации диалогов
sagifire
  опции профиля:
сообщение 26.12.2008, 13:01
Сообщение #1


Студент
*

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

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




Репутация:   1  


Когда то наваял вот такой класс. Недавно решил его выложить.

Класс arkInputDialog предназначен для динамической генерации диалоговых окон. В основном используется там где надо одержать данные от пользователя, но не известно, какие именно данные будут нужные от пользователя. Класс унаследован от QDialog.

Скачать | Описание

Описание сейчас очень скудное, но скоро я сделаю полною документацию по методах класса.

Жду Ваших отзывов и критики
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
sagifire
  опции профиля:
сообщение 26.12.2008, 18:17
Сообщение #2


Студент
*

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

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




Репутация:   1  


Новой пример 13кб
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 26.12.2008, 18:48
Сообщение #3


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

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

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




Репутация:   23  


Цитата(sagifire @ 26.12.2008, 18:17) *


вот другое дело.
однако.
просил критики. так на вскидку взглянул.

функция prepare().
опасно тем что юный юзверь вызовет её несколько раз. плохо получится. кнопки будут создаваться и т.д. и т.п.
так ведь?

данные открыты в PUBLIC зачем? есть возможность спрячь по дальше.
QString label;
QVariant value;
QWidget *widget;
int group;


есть член класса указатель на виджет widget.... и тут же в методе
void arkInputDialog::addString(const QString &label, const QString &value)
{
    QLineEdit *widget=new QLineEdit(this);
    ....
}

ты создаешь одноименный.... к ошибке не приводит ... но практика для переносимого кода для использования сторонними лицами нехорошая. не знаю как поведут себя различные компиляторы.

if(val.type()==QVariant::Bool){
                QCheckBox *wdg=static_cast<QCheckBox*>(items.value(index)->widget);
                wdg->setChecked(val.toBool());
                items.value(index)->value=val;
            }
            if(val.type()==QVariant::Double){
                QDoubleSpinBox *wdg=static_cast<QDoubleSpinBox*>(items.value(index)->widget);
                wdg->setValue(val.toDouble());
                items.value(index)->value=val;
            }
            if(val.type()==QVariant::Int){
                QSpinBox *wdg=static_cast<QSpinBox*>(items.value(index)->widget);
                wdg->setValue(val.toInt());
                items.value(index)->value=val;
            }
            if(val.type()==QVariant::Date){
                QDateEdit *wdg=static_cast<QDateEdit*>(items.value(index)->widget);
                wdg->setDate(val.toDate());
                items.value(index)->value=val;
            }
            if(val.type()==QVariant::String){
                QLineEdit *wdg=static_cast<QLineEdit*>(items.value(index)->widget);
                wdg->setText(val.toString());
                items.value(index)->value=val;
            }
            if(val.type()==QVariant::StringList){
                QComboBox *wdg=static_cast<QComboBox*>(items.value(index)->widget);
                wdg->setCurrentIndex(wdg->findText(val.toString()));
                items.value(index)->value=val;
            }

что то мне не понятное???
почему не switch() он же шустрее будет.
int t = val.type();
switch(t){
...
}



еще вопрос
зачем класс arkInpDlgItem???

если он нужн только для предоставления данных при том открытых. может обойтись структурой и спрятать её от пользователя.... если он непосредственно не пользуется классом arkInpDlgItem.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- sagifire   arkInputDialog   26.12.2008, 13:01
- - Litkevich Yuriy   sagifire, для тебя какой язык родной? Определенно...   26.12.2008, 13:05
- - sagifire   Да, русский не мой родной. Я даже в школе не учил....   26.12.2008, 13:44
|- - AD   Вот честно, из описания я не понял смысл этого кла...   26.12.2008, 13:51
- - sagifire   Суть класса в том чтоб при помощи кода бистро полу...   26.12.2008, 15:36
- - Litkevich Yuriy   Цитата(sagifire @ 26.12.2008, 16:01) В ос...   26.12.2008, 16:53
- - sagifire   В основном используется там где надо получить данн...   26.12.2008, 17:05
- - Litkevich Yuriy   Цитата(sagifire @ 26.12.2008, 20:05) В ос...   26.12.2008, 17:07
|- - kwisp   Цитата(Litkevich Yuriy @ 26.12.2008, 17:0...   26.12.2008, 17:14
- - sagifire   Этот класс я написал для себя, чтоб не рисовать 15...   26.12.2008, 17:31
|- - kwisp   Цитата(sagifire @ 26.12.2008, 17:31) Этот...   26.12.2008, 17:55
- - Litkevich Yuriy   sagifire, предлагаю сделать описание в стиле докум...   26.12.2008, 17:40
- - sagifire   Цитата(Litkevich Yuriy @ 26.12.2008, 16:4...   26.12.2008, 17:43
- - sagifire   Цитата(kwisp @ 26.12.2008, 16:55) не хочу...   26.12.2008, 18:03
- - Litkevich Yuriy   Цитата(sagifire @ 26.12.2008, 21:03) Там ...   26.12.2008, 18:09
- - sagifire   Новой пример 13кб   26.12.2008, 18:17
|- - kwisp   Цитата(sagifire @ 26.12.2008, 18:17) Ново...   26.12.2008, 18:48
- - Litkevich Yuriy   Цитата(sagifire @ 26.12.2008, 21:17) Ново...   26.12.2008, 18:28
- - sagifire   Спасибо! Вот такая критика мне и была нужна. ...   27.12.2008, 15:00
- - Litkevich Yuriy   Цитата(sagifire @ 27.12.2008, 18:00) реал...   27.12.2008, 15:58


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


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




RSS Текстовая версия Сейчас: 31.12.2024, 18:05