d
3 января 2019 г. 1:16

Почему не получается получить доступ к QDoubleSpinBox из другого класса?

qt, class

Есть class MainWindow и class PollutionZone : public QWidget. В классе PollutionZone, есть два QDoubleSpinBox :

  1. QDoubleSpinBox *latitudeDSpinBox = new QDoubleSpinBox(this);
  2. virtual QDoubleSpinBox* PollutionZone::getLatitudeDSpinBox()
  3. {
  4. return latitudeDSpinBox;
  5. }
  6. QDoubleSpinBox *longitudeDSpinBox = new QDoubleSpinBox(this);
  7. virtual QDoubleSpinBox* PollutionZone::getLongitudeDSpinBox()
  8. {
  9. return longitudeDSpinBox;
  10. }

Почему в классе MainWindow не получается изменить значения latitudeDSpinBox, longitudeDSpinBox ?

  1. #include "PollutionZone/pollutionzone.h"
  2. ...
  3. MainWindow::MainWindow(QWidget *parent) :
  4. QMainWindow(parent),
  5. ui(new Ui::MainWindow)
  6. {
  7. ...
  8. PollutionZone *PZone = new PollutionZone();
  9. PZone->getLatitudeDSpinBox()->setValue(1.111111);
  10. PZone->getLongitudeDSpinBox()->setValue(2.222222);
  11. delete PZone;
  12. ...
  13. }

Не получается изменить значения - это значит, остаются координаты равными : 0.000000, 0.000000

2

Вам это нравится? Поделитесь в социальных сетях!

2
nayk1982
  • 3 января 2019 г. 9:46

Добрый день. У Вас в конструкторе MainWindow:

  1. PollutionZone *PZone = new PollutionZone();
  2. PZone->getLatitudeDSpinBox()->setValue(1.111111);
  3. PZone->getLongitudeDSpinBox()->setValue(2.222222);
  4. delete PZone;

Создается PZone, устанавливаются значения и сразу уничтожается PZone. Код по сути бесполезный.
И как Вы в этом случае используете QDoubleSpinBox?

    d
    • 5 января 2019 г. 0:15

    Я уже разобрался спасибо. Было созданно два PollutionZone *PZone = new PollutionZone(); . Поэтому и не работало

      Комментарии

      Только авторизованные пользователи могут публиковать комментарии.
      Пожалуйста, авторизуйтесь или зарегистрируйтесь