46 / 13 / 3
Регистрация: 29.09.2013
Сообщений: 289
1

Почему после использования QFileDialog, при выходе из программы ошибка адресации?

18.12.2016, 11:16. Показов 746. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++ (Qt)
1
2
    connect(ui->webView->page(), SIGNAL(downloadRequested(QNetworkRequest)),
            this, SLOT(download(QNetworkRequest)));
Слот, в котором открывается QFileDialog:
C++ (Qt)
1
2
3
4
void MainWindow::download(QNetworkRequest request)
{
    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"));
}
Диалог открывается, ввод имени, OK.

А при выходе из программы Ошибка адресации
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2016, 11:16
Ответы с готовыми решениями:

Почему массив путей файлов не обнуляется при выходе из программы
Foreach считывает файлы по циклу в папке, но т.к. их бывает много то сделана сортировка по дате....

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

Ошибка при выходе из программы
Помогите пожалуйста найти ошибку, которая возникает при выходе из программы. Error -...

Ошибка при выходе из программы
Работаю с экселем.Открываю книгу,обрабатываю.Если открываю документ из моей программы,то после...

7
1070 / 652 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.12.2016, 16:43 2
Цитата Сообщение от Dexel Посмотреть сообщение
А при выходе из программы Ошибка адресации
Слишком мало сведений, приведите больше кода. Запустите приложение в режиме отладки и найдите, где оно вылетает и на чём.
0
46 / 13 / 3
Регистрация: 29.09.2013
Сообщений: 289
18.12.2016, 17:42  [ТС] 3
Проблема в следующем. Типа локализовал, но решения, кроме как выбросить из программы полноценный Help не нашел.

Полный код (убрал всё до минимума)

Заголовки:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QFileDialog>
#include <khelpmenu.h>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private slots:
    void on_pushButton_clicked();
 
private:
    Ui::MainWindow *ui;
};
 
#endif // MAINWINDOW_H
Source:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "mainwindow.h"
#include "ui_mainwindow.h"
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    KHelpMenu *helpMenu = new KHelpMenu( this );
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getSaveFileName(0, tr("Save File"));
}
Запускаем. Выходим - всё нормально.

Запускаем. Нажимаем кнопку, вбиваем что-нить, жмём Сохранить. Выходим - Crashed

Убираем создание объекта KHelpMenu - всё в норме.
0
1070 / 652 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.12.2016, 17:55 4
Цитата Сообщение от Dexel Посмотреть сообщение
Запускаем. Нажимаем кнопку, вбиваем что-нить, жмём Сохранить. Выходим - Crashed
Убираем создание объекта KHelpMenu - всё в норме.
Ну так проблема не в QFileDialog::getSaveFileName, а в KHelpMenu. KHelpMenu - это KDE, копайте в ту сторону.
Qt - это Qt Help.
0
Эксперт по математике/физикеЭксперт С++
2044 / 1363 / 393
Регистрация: 16.05.2013
Сообщений: 3,500
Записей в блоге: 6
20.12.2016, 07:41 5
Очевидно же:
C++ (Qt)
1
2
3
4
5
MainWindow::~MainWindow()
{
    delete helpMenu;
    delete ui;
}
0
182 / 37 / 5
Регистрация: 29.01.2013
Сообщений: 253
21.12.2016, 00:58 6
Цитата Сообщение от Ilot Посмотреть сообщение
Очевидно же:
helpMenu - не член MainWindow.
0
46 / 13 / 3
Регистрация: 29.09.2013
Сообщений: 289
24.12.2016, 03:23  [ТС] 7
Ясно, значит в Qt ему не место.

Добавлено через 5 минут
Ilot, то же самое
0
182 / 37 / 5
Регистрация: 29.01.2013
Сообщений: 253
24.12.2016, 08:27 8
Цитата Сообщение от Dexel Посмотреть сообщение
Ясно, значит в Qt ему не место.
Зачем же так?
Просто надо его обслужить - подключить либу, в которой он тусуется собрнный и т.п.
У меня такая же заморочка с umbrello - пытаюсь собрать его на форточкавс.

Добавлено через 29 минут
+
Выловил список инклюдов:
Кликните здесь для просмотра всего текста
<kaboutdata.h>
<kaction.h>
<KAction>
<kactioncollection.h>
<KActionCollection>
<kactionmenu.h>
<kapplication.h>
<kcmdlineargs.h>
<kcolorbutton.h>
<KColorButton>
<kcolordialog.h>
<kcombobox.h>
<KComboBox>
<kcompletion.h>
<kconfig.h>
<kconfiggroup.h>
<KConfigGroup>
<kcursor.h>
<kdebug.h>
<kdeprintdialog.h>
<KDesktopFile>
<kdeversion.h>
<kdialog.h>
<KDialog>
<kdialogbuttonbox.h>
<kfiledialog.h>
<kfilefiltercombo.h>
<kfontchooser.h>
<KFontChooser>
<kfontdialog.h>
<kgenericfactory.h>
<kglobal.h>
<KGlobalSettings>
<KHelpClient>
<khelpmenu.h>
<kicon.h>
<kiconloader.h>
<kinputdialog.h>
<KIntSpinBox>
<kio/job.h>
<KIO/Job>
<KIO/MkdirJob>
<kio/netaccess.h>
<kjobwidgets.h>
<KJobWidgets>
<kled.h>
<klibloader.h>
<klineedit.h>
<KLineEdit>
<KLocalizedString>
<kmenu.h>
<kmenubar.h>
<KMessageBox>
<kmimetype.h>
<KMimeType>
<KPageDialog>
<kpagewidget.h>
<KPageWidget>
<kpushbutton.h>
<krandom.h>
<krecentfilesaction.h>
<ksharedconfig.h>
<kstandardaction.h>
<kstandarddirs.h>
<KStandardDirs>
<kstatusbar.h>
<ktabwidget.h>
<KTabWidget>
<ktar.h>
<ktempdir.h>
<KTempDir>
<ktemporaryfile.h>
<ktextedit.h>
<KTextEdit>
<ktexteditor/configinterface.h>
<ktexteditor/document.h>
<ktexteditor/editor.h>
<ktexteditor/editorchooser.h>
<ktexteditor/view.h>
<ktip.h>
<ktoggleaction.h>
<KToggleAction>
<ktoolbar.h>
<kundostack.h>
<kurl.h>
<KUrl>
<kurlrequester.h>
<kvbox.h>
<kwin.h>
<kxmlguifactory.h>
<kxmlguiwindow.h>
<KZip>

Пытаюсь разобраться как можно с этим поработать
0
24.12.2016, 08:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2016, 08:27
Помогаю со студенческими работами здесь

Ошибка при выходе из программы
Не судите строго, только вчера начал изучать QT)) Вот есть простой код #include...

Ошибка при выходе с программы
Пишу програму на C++ builder XE3. Программа работает. int N = 0; int *m = new int; ...

Ошибка доступа к памяти при выходе из программы
Подскажите почему после завершения работы выдаётся ошибка, что идёт запись данных в память? вроде...

Ошибка при движении мышкой и выходе из программы
Ребята, помогите пожалуйста!!! Постоянно после нажатия на Button3 выскакивает Access Violation at...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru