Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [wxWidgets] Получение числа из wxTextCtrl и 
:(
    Опции темы
1Skazochnik
Дата 12.5.2011, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.5.2011

Репутация: нет
Всего: нет



Добрый день!
Я новичек в программировании, поэтому прошу помощи.
Необходимо считать из элемента wxTextCtrl строку в переменную типа int или double, произвести вычисления и преобразовать 

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

Как правильно делать это преобразование ?

Код

void wxGridDialog::OngoClick(wxCommandEvent& event)
{
    Grid1->ClearGrid(); // очищение данных 
    if (Grid1->GetNumberRows() != 0) // и сброс таблицы 
        Grid1->DeleteRows(0, Grid1->GetNumberRows()); // в 0 строк и 0 столбцов

    int x = 5, y = 0, iRez; // переменные в которые записываем из wxTextCtrl

    double dx; // вспомогательные переменные 
    double* tmp = &dx; // для преобразования
    
    xEdit->GetValue().ToDouble(tmp); // получение значения 
    x = static_cast<int>(dx); // для x из wxTextCtrl
    
    for (int i = 0; i < x; i++) // цикл который 
    {
        Grid1->AppendRows(1); // сделает как 
        for (int j = 1; j <= y; j++) // бы таблицу умножения x на y
        {
            iRez = x * j; // ПРОБЛЕМА для SetCellValue(int row, int col, const wxString& s)
        }               // необходимо каждый раз результат преобразовывать в строку
    }                   // как оптимально решить эту задачу ?
}



M
JackYF
Пользуемся кнопкой "код".

PM MAIL   Вверх
Amp
Дата 12.5.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 7
Всего: 17



Конвертировать можно по-разному.

Не очень хороший способ. Тут лучше сразу x заводить как long:
Код

xEdit->GetValue().ToLong((long *)&x);

С помощью lexical_cast:
Код

x = boost::lexical_cast<int>(xEdit->GetValue().c_str());

Обертка вокруг crt:
Код

x = wxAtoi(xEdit->GetValue());


Естественно во всех случаях нужна обработка ошибок - проверка возвращаемых значений, отлов bad_lexical_cast.
В строку придется преобразовывать каждый раз, перед тем как вывести. Тут ничего не поделаешь.

Например можно так:
Код

wxString str;
str << 3 * 4;

Или так:
Код

str = wxString::Format(L"%i", 3 * 4);

Или же через Printf.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0385 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.