Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Zusykss от Январь 31, 2017, 20:06



Название: Проблема с окном
Отправлено: Zusykss от Январь 31, 2017, 20:06
Создаю окно, когда запускаю дальнейшее выполнение задачи и во время выполнения начинаю тягать окно за верхнюю полосу, вылетает ошибка типа Access Violation. И приходится перезапускать программу, подскажите решение)

Код:
Presenter::Presenter(QObject *parent) : QObject(parent)
{
    m_window.reset(new MainWindow(nullptr));


    QObject::connect(m_window.get(), &MainWindow::SingIn, this, &Presenter::SlotStartPostingVK);

    m_window->show();
}

Код:
  
void Presenter::SlotStartPostingVK(const QString & message)
{
    m_auth_VK.reset(new VkAuth());
    m_auth_VK->SetMessage(message);
    m_auth_VK->FillingOfGroups();
    QObject::connect(m_auth_VK.get(), &VkAuth::SignalGetErrorStr, this, &Presenter::SlotCallErrorMSG);
    QObject::connect(m_auth_VK.get(), &VkAuth::SignalFinishPosting, this, &Presenter::SlotStartPostingOK);
}


Название: Re: Проблема с окном
Отправлено: Пантер от Январь 31, 2017, 20:10
Мало данных. Либо больше кода давай, либо вообще приложи минимальный компилябельный пример.


Название: Re: Проблема с окном
Отправлено: Пантер от Январь 31, 2017, 20:20
Это огрызок кода, которы ниочем не говорит. Что происходит в других классах? Используются ли потоки? Ты дебажить вообще пробовал?


Название: Re: Проблема с окном
Отправлено: Old от Январь 31, 2017, 20:25
Вот тебе весь код.
Михаил, нельзя данные учетки выкладывать в публичный доступ. :)
Срочно меняйте пароль. :)


Название: Re: Проблема с окном
Отправлено: Zusykss от Январь 31, 2017, 20:31
)) Спасибо, удалил и пароль сменю обязательно



Название: Re: Проблема с окном
Отправлено: Zusykss от Январь 31, 2017, 20:34
Это огрызок кода, которы ниочем не говорит. Что происходит в других классах? Используются ли потоки? Ты дебажить вообще пробовал?

Дебажил, может мне создавать классы в отдельных потоках как думаете?
Потому что когда двигаю формой во время выполнения, она то зависает то вообще ошибку выдает....
Понимаю. В остальных классах потоки не создаются.


Название: Re: Проблема с окном
Отправлено: Пантер от Январь 31, 2017, 21:19
Это огрызок кода, которы ниочем не говорит. Что происходит в других классах? Используются ли потоки? Ты дебажить вообще пробовал?

Дебажил, может мне создавать классы в отдельных потоках как думаете?
Потому что когда двигаю формой во время выполнения, она то зависает то вообще ошибку выдает....
Понимаю. В остальных классах потоки не создаются.
Думаю, что потоки тебе вообще не нужны. Ты хотя бы скажи, какие классы в работе используешь. Да и что вообще делает твоя прога.


Название: Re: Проблема с окном
Отправлено: Zusykss от Январь 31, 2017, 22:13
 std::shared_ptr<QNetworkAccessManager> m_manager;
    QNetworkCookieJar * m_jar;
    QNetworkReply * m_reply;
    QNetworkRequest m_req;
    QEventLoop m_loop;
    QList<QNetworkCookie> m_cookies;
    QByteArray m_post_arr;
    QString m_replyStr;
    QStringList m_listGroups;
    SettingManager m_setting;

Прога посылает запросы на сервер контакта и одноклассников, сначала вконтакт, а потом в одноклассники!


Название: Re: Проблема с окном
Отправлено: Пантер от Январь 31, 2017, 22:17
Покажи работу с m_manager. Как создаешь реквест, на что коннектишься и что делаешь в слоте завершения запроса.


Название: Re: Проблема с окном
Отправлено: Bepec от Февраль 01, 2017, 07:21
Судя по тому, что используется reset с new MainWindow, у него удаляются остальные виджеты, по которым он обращается. Если ещё не хуже, не сам класс presenter :D


Название: Re: Проблема с окном
Отправлено: Old от Февраль 01, 2017, 10:09
Судя по тому, что используется reset с new MainWindow, у него удаляются остальные виджеты, по которым он обращается. Если ещё не хуже, не сам класс presenter :D
По которым кто обращается?


Название: Re: Проблема с окном
Отправлено: panAlexey от Февраль 01, 2017, 11:37
)) Спасибо, удалил и пароль сменю обязательно
Не успел, можешь повторить?


Название: Re: Проблема с окном
Отправлено: Bepec от Февраль 01, 2017, 12:54
Он.


Название: Re: Проблема с окном
Отправлено: Zusykss от Февраль 01, 2017, 20:13
Судя по тому, что используется reset с new MainWindow, у него удаляются остальные виджеты, по которым он обращается. Если ещё не хуже, не сам класс presenter :D
По которым кто обращается?


Проблема в том, что при выполнение программы, именно когда выполняются функции в класса VkAuth и OkAuth, я начинаю двигать форму, может вылететь ASSERT. А если я её не трогаю, все работает отлично, и никакие ошибки не появляются. Я не думаю что это из за === reset(MainWindow)....


Название: Re: Проблема с окном
Отправлено: Old от Февраль 01, 2017, 20:45
Цитата: Zusykss link=topic=30958.msg229263#msg229263
Я не думаю что это из за === reset(MainWindow)....
Конечно нет.

Цитата: Zusykss link=topic=30958.msg229263#msg229263
Проблема в том, что при выполнение программы, именно когда выполняются функции в класса VkAuth и OkAuth, я начинаю двигать форму, может вылететь ASSERT. А если я её не трогаю, все работает отлично, и никакие ошибки не появляются.
Не знаю как в новых, а в старых вендах, в момент перетаскивания окна блокировалась обработка событий. Возможно в этом дело.
Запустите программу под отладчиком и пусть она упадет, отладчик покажет место падения.


Название: Re: Проблема с окном
Отправлено: Zusykss от Февраль 01, 2017, 21:36

Цитата: Zusykss link=topic=30958.msg229263#msg229263
Проблема в том, что при выполнение программы, именно когда выполняются функции в класса VkAuth и OkAuth, я начинаю двигать форму, может вылететь ASSERT. А если я её не трогаю, все работает отлично, и никакие ошибки не появляются.
Не знаю как в новых, а в старых вендах, в момент перетаскивания окна блокировалась обработка событий. Возможно в этом дело.
Запустите программу под отладчиком и пусть она упадет, отладчик покажет место падения.
[/quote]

Проделал 4 раза, во время запуска классов  VkAuth и OkAuth окно повисает, а потом развисает когда все выполнено, а если запустить не отладчик то при движение окна вылетает. Хотя сейчас запускаю и ничего такого уже не наблюдаю...