Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Неравенство строк
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
DAVID
Привет всем!
Не могу понять в чем ошибка:

main.cpp
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTranslator translator;
    translator.load("qt_ru", QApplication::applicationDirPath() + "/");
    a.installTranslator(&translator);

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForLocale(codec);

    qW_my_class w;
    w.show();
    
    return a.exec();
}


widget.h
class qW_my_class : public QWidget
{
    Q_OBJECT

public:

    QWebView *qWV_ob;
    QWebPage *qWP_ob;
    QString   qS_ob;

    qW_my_class (QWidget *parent = 0) : QWidget (parent)
    {
        qWV_ob = new QWebView;
        qWV_ob->load (tr ("http://www.yandex.ru"));

        qWP_ob = new QWebPage (qWV_ob->page());
        connect (qWP_ob->mainFrame(), SIGNAL(loadFinished (bool)), SLOT(mySlotLoadFinished (bool)));
        qWP_ob->mainFrame()->load (tr ("http://www.yandex.ru"));

        QHBoxLayout *qHBL_ley = new QHBoxLayout;
        qHBL_ley->addWidget (qWV_ob);
        setLayout (qHBL_ley);
    }

public slots:

    void mySlotLoadFinished (bool ok)
    {
        if (ok)
        {
            qS_ob = qWV_ob->page()->mainFrame()->documentElement().document().toPlainText();

            QStringList qSL_ob = qS_ob.split(tr ("\n"));

            QString qS_ob_2 = tr("Сделать Яндекс стартовой страницей");

            if (qSL_ob.at(0) == qS_ob_2)
                qDebug() << tr ("YES !!!");
            else
                qDebug() << qSL_ob.at(0) << " != " << qS_ob_2;

            // "Сделать Яндекс стартовой страницей"  !=  "Сделать Яндекс стартовой страницей"
        }
        else qDebug() << tr ("don't OK!");
    }
};


qDebug() выводит следующее: "Сделать Яндекс стартовой страницей" != "Сделать Яндекс стартовой страницей"
igor_bogomolov
Убедись, что у тебя файл widget.h сохранён в UTF-8, а не в какой-нибудь cp1251
И попробуй так
if (qSL_ob.at(0).toUtf8() == qS_ob_2.toUtf8())
DAVID
Цитата(igor_bogomolov @ 12.5.2014, 13:40) *
Убедись, что у тебя файл widget.h сохранён в UTF-8, а не в какой-нибудь cp1251
И попробуй так
if (qSL_ob.at(0).toUtf8() == qS_ob_2.toUtf8())

Не помогло.
Тот же самый вывод
igor_bogomolov
Цитата(DAVID @ 12.5.2014, 13:50) *
Не помогло.
Тот же самый вывод
Понятно. У тебя строка записана через пробел. То что дёргаешь со страницы Яндекса написано через &nbsp; (No-break space)


Можно записать так
QString qS_ob_2 = tr("Сделать%1Яндекс%2стартовой%3страницей").arg(QChar(0xA0)).arg(QChar(0xA0)).arg(QChar(0xA0));
DAVID
А можно ли как нибудь перевести страницу Яндекса в обычный текст?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.