Arrow
Қаң. 9, 2017, 3:33 Т.Ж.
1

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

5
Arrow
  • Қаң. 9, 2017, 3:53 Т.Ж.

Вопрос в следующем: Есть класс "A" в котором реализован метод: int distr() const { return this->Distr; } Как реализовать в классе возможность перевода значения int в QString, чтобы в месте использования класса можно было выполнить следующее: A *ai = new Ai(); Qstring str = ai->distr().toInt(); // Необходимое действие

    Evgenii Legotckoi
    • Қаң. 9, 2017, 11:06 Т.Ж.

    Я так понимаю, что Distr - это некая переменная типа int ?

    Если так, то перевод int в QString можно сделать следующим образом:

    A *ai = new Ai(); 
    QString str = QString::number(ai->distr());

    P/S/ Используйте, пожалуйста, для вставки кода специальное диалоговое окно, которое можно вызвать с помощью одной из кнопок (которая с двумя треугольными скобками), тогда форматирование и переносы строк не будут съезжать.

      Arrow
      • Қаң. 9, 2017, 3:15 Т.Қ.

      Спасибо, я так и сделал, но думал, что есть возможность задать это в классе так как я написал выше.

      Еще один вопрос - есть ли в Qt что-то наподобие записи из C# :

      throw new Exception("Ошибка данных");
        Evgenii Legotckoi
        • Қаң. 9, 2017, 3:27 Т.Қ.
        • Жауап шешім ретінде белгіленді.

        В данном случае вот эта Ваша запись сама по себе выглядит странно:

        QString str = ai->distr().toInt();
        По смыслу, Вы приравниваете int к QString . Если хотите так приравнивать, то можно сделать отдельный класс наследованный от QString и добавить перегрузку оператора присвоения, но в данном случае это будет неправильно. QString сродни базовому типу в Qt, и без особой надобности такое лучше не делать.

        А Distr у Вас по той информации, что Вы дали явно является объектом типа int . Так что тоже как-то странно будет прикручивать метод toInt() к этому объекту какими-нибудь правдами или неправдами

        Если уж хочется получить для этого дела один метод у класса, то тогда добавьте что-нибудь вроде такого:

        QString distrToString() const 
        { 
            return QString::number(this->Distr);
        } 

        Что впрочем по смыслу будет мало отличаться от первого варианта

        Что касается throw - это уже вопрос не к Qt, а к самому C++.
        Скажем так: Исключения в C++ есть, но они как-то в меньшей степени используются, чем в C#. Я уже не помню, когда последний раз пользовался исключениями.

          Arrow
          • Қаң. 9, 2017, 3:46 Т.Қ.

          Спасибо.

            Пікірлер

            Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
            Кіріңіз немесе Тіркеліңіз