Russian Qt Forum
Ноябрь 01, 2024, 16:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: подскажите что не так  (Прочитано 7207 раз)
Novicheck
Гость
« : Апрель 28, 2015, 11:10 »

подскажите что не так, пожалуйста
Код:
QString city_1 = settings->value("city_1").toString();
mes = new QMessageBox(QMessageBox::NoIcon, tr("Описание объекта"), city_1);
ругается на QString city_1
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Апрель 28, 2015, 11:17 »

подскажите что не так, пожалуйста
Код:
QString city_1 = settings->value("city_1").toString();
mes = new QMessageBox(QMessageBox::NoIcon, tr("Описание объекта"), city_1);
ругается на QString city_1

Я сейчас тоже буду ругаться Смеющийся
Какая ошибка? Улыбающийся
Записан

Novicheck
Гость
« Ответ #2 : Апрель 28, 2015, 11:20 »

действительно, извиняюсь
ошибка: no matching function for call to 'QMessageBox::QMessageBox(QMessageBox::Icon, QString, QString*&)'
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Апрель 28, 2015, 11:22 »

Ты точно правильно код привел?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Novicheck
Гость
« Ответ #4 : Апрель 28, 2015, 11:23 »

один в один
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #5 : Апрель 28, 2015, 11:32 »

попробуй так:

Код:
    QString city_1(settings->value("city_1").toString());
    QMessageBox mes(QMessageBox::NoIcon, tr("Описание объекта"), city_1);
    mes.exec();
Записан
Novicheck
Гость
« Ответ #6 : Апрель 28, 2015, 11:36 »

та же самая ошибка(
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Апрель 28, 2015, 11:38 »

Минимальный некомпилябельный пример в студию.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Novicheck
Гость
« Ответ #8 : Апрель 28, 2015, 11:49 »

Код:
#include "map.h"

#include <QTextCodec>

map::map(QWidget *parent)
    : QWidget(parent)
{
    QTextCodec *codec = QTextCodec::codecForName("CP1251");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForLocale(codec);

    btn_msc = new QPushButton(tr("Москва"));

    settings = new QSettings("data_map.ini", QSettings::IniFormat);
    QString city_1 = settings->value("city_1").toString();
    connect(btn_spb, SIGNAL(clicked()), SLOT(message_show()));
}

void map::message_show()
{
    mes = new QMessageBox(QMessageBox::NoIcon, tr("Описание объекта"), city_1);
    mes->show();
}

map::~map()
{
   
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Апрель 28, 2015, 11:52 »

Эм. city_1 ты создаешь в пределах области видимости конструктора, откуда ему взяться в message_show()Непонимающий
Да, еще, нахрена называть класс именем, которое уже используется в stl?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Novicheck
Гость
« Ответ #10 : Апрель 28, 2015, 11:58 »

имена так присвоены наоборот для удобства(удобства проверки в смысле), ибо их там огромное количество(здесь приведена лишь выдержка), а с инициализацией в конструкторе действительно я жестко затупил... спасибо большое!
Записан
Novicheck
Гость
« Ответ #11 : Апрель 28, 2015, 12:54 »

подскажите еще пожалуйста как установить русскую кодировку для моего QString city_1.
QTextCodec *codec = QTextCodec::codecForName("CP1251"); в конструкторе я уже объявил, и он работает корректно с текстом в QLabel, QPushButton и заголовках форм, а в QString city_1 абру-кадабру выводит.
в чем может быть проблема?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Апрель 28, 2015, 12:56 »

В какой кодировке ini файл? Да, не используй символы кириллицы в коде.
Смотри void QSettings::setIniCodec(QTextCodec * codec)
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Novicheck
Гость
« Ответ #13 : Апрель 28, 2015, 13:06 »

setIniCodec помог))
да, надо мне повнимательней курить документацию.
Спасибо большое, Пантер! выручаете меня сегодня весь день)
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #14 : Апрель 28, 2015, 13:06 »

Да, не используй символы кириллицы в коде.
Применительно к исходникам С++ + Qt чем плохо использование кириллицы, если все файлы в utf-8?
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.165 секунд. Запросов: 23.