Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
d
2 января 2019 г. 19:16

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

qt, class

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

QDoubleSpinBox *latitudeDSpinBox = new QDoubleSpinBox(this);
virtual QDoubleSpinBox* PollutionZone::getLatitudeDSpinBox()
{
    return latitudeDSpinBox;
}
QDoubleSpinBox *longitudeDSpinBox = new QDoubleSpinBox(this);
virtual QDoubleSpinBox* PollutionZone::getLongitudeDSpinBox()
{
    return longitudeDSpinBox;
}

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

#include "PollutionZone/pollutionzone.h"
...
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
 ...
    PollutionZone *PZone = new PollutionZone();
    PZone->getLatitudeDSpinBox()->setValue(1.111111);
    PZone->getLongitudeDSpinBox()->setValue(2.222222);
    delete PZone;
 ...
}

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

2

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

PollutionZone *PZone = new PollutionZone();
PZone->getLatitudeDSpinBox()->setValue(1.111111);
PZone->getLongitudeDSpinBox()->setValue(2.222222);
delete PZone;

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

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

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

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
A
22 января 2019 г. 21:22
Allyonz

C++ - Тест 001. Первая программа и типы данных

  • Результат:40баллов,
  • Очки рейтинга-8
A
22 января 2019 г. 14:15
Alex

Qt - Тест 001. Сигналы и слоты

  • Результат:89баллов,
  • Очки рейтинга6
IO
20 января 2019 г. 18:39
Ivan Otreshko

C++ - Тест 003. Условия и циклы

  • Результат:0баллов,
  • Очки рейтинга-10
Последние комментарии
22 января 2019 г. 13:17
Евгений Легоцкой

Создайте тогда тему здесь на форуме в разделе Qt с выкладками кода и вашими попытками внедрения делегата, позже гляну или может кто-то ещё глянет из опытных пользователей.
I
22 января 2019 г. 13:13
IscanderChe

Не проще тогда использовать сразу кастомный делегат с чекбоксом? Я попробовал, но там засада в том, что чекбокс показывается только при щелчке на ячейку, а дефолтно показывается значение. Как ...
22 января 2019 г. 12:15
Евгений Легоцкой

Если будет не приемлемо потом, то тогда через кастомный Item Delegate нужно будет перерисовать ячейки в той колонке.
I
22 января 2019 г. 12:09
IscanderChe

Получилось приемлемо. Спасибо!Нюанс только в том, что поле рядом с чекбоксом не пропадает, оно просто пустое, что видно при выделении ячейки. Но этого достаточно.
22 января 2019 г. 11:50
Евгений Легоцкой

Переопределить метод data для той колонки и роли Qt::DisplayRole, чтобы в том случае возвращался QVariant() я так думаю... Но возможно, что у вас там будут нюансы, если вы туда чекбокс за...
Сейчас обсуждают на форуме
23 января 2019 г. 7:54
Михаиллл

Зарание спасибо.А еще на эту тему можно будет сделать статью. Это контент будет уникальным.
23 января 2019 г. 7:37
Евгений Легоцкой

Hello. Maybe the English will be better for you? I think russian is not native language for you, or did I mistake? Did I undesrtood rightly, that you mean this documentation ( ...
I
22 января 2019 г. 13:45
IscanderChe

Всем добрый день. Суть задачи: надо, чтобы в одной из колонок QTableView вместо хранимого в QSqlTableModel значения выводился чекбокс и при смене состояния чекбокса значения в базе тоже ...
M
22 января 2019 г. 13:15
Max-P85

Евгений, огромное спасибо, все работает!
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы