Solved Segmentation fault while open a text file
-
Hello,
i want to open a .htm file with this code:
QString fileName = QFileDialog::getOpenFileName(this, tr("Öffnen..."), QString(), tr("TextPad 1.0 (*.htm);;")); QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); if(fileName.isEmpty()) return; QFile file(fileName, this); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Fehler beim Öffnen der Datei"; } QProgressDialog progress("Öffnen - Fortschritt", "Abbrechen", 0, 10); progress.setWindowTitle("Öffnen"); progress.show(); for(int i = 0; i < 10; i++) { progress.setValue(i); if(progress.wasCanceled()) break; QTime saveTime = QTime::currentTime().addMSecs(40); while(QTime::currentTime() < saveTime) QCoreApplication::processEvents(QEventLoop::AllEvents, 100); } progress.setValue(1); if (document()) { document()->clear(); } document()->setHtml(file.readAll()); file.close();
But i will get this error:
shell\comdlg32\fileopensave.cpp(14382)\COMDLG32.DLL!7465AABC: (caller: 7468B0FD) ReturnHr(1) tid(da8) 80004005 Unspecified error CallContext:[\PickerModalLoop]
Anybody an idea how to fix that?
-
Did you try to debug your application? It is usually a good way to find bugs.
-
@HenrikSt.
Certainly @JohanSolo 's advice is valid and will mark the next step.
However, when you have not rerun qmake and made rebuild, this is in most cases the first choice. When this does not help, you need to go to debug.
-
Hi,
To add to my fellow, you're checking the availability of the document before calling clear but then you don't care about that anymore and call the next function anyway.
-
@HenrikSt. One more note: why do you pass this to QFile()?
-
@JohanSolo I debug that
@SGaist What do you mean? How can I fix that? The thing is, it worked before I changed the kits from mscv2015 to msgw32 bit... -
I googled this error message and somehow told that this error has nothing to do with Qt. It's a general Windows Problem, so that the error comes too while open a file into Notepad. Is it right?
-
@HenrikSt. What @SGaist means is:
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Fehler beim Öffnen der Datei"; }
If you cannot open the file you just continue and try to read its content later. Shouldn't you add a return there?
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Fehler beim Öffnen der Datei"; return; }
Also: why do you set a parent in your QFile?
-
@HenrikSt. said in Segmentation fault while open a text file:
changed the kits from mscv2015 to msgw32 bit
Did you rerun qmake and did a rebuild after changing the kit?
-
@HenrikSt. said in Segmentation fault while open a text file:
shell\comdlg32\fileopensave.cpp(14382)\COMDLG32.DLL!7465AABC: (caller: 7468B0FD) ReturnHr(1) tid(da8) 80004005 Unspecified error
CallContext:[\PickerModalLoop]To add to the already given suggestions, this error doesn't seem to have anything to do with the actual opening of the file, but rather with the
QFileDialog::getOpenFileName
. Try with an alien dialog and see how that fares. -
@HenrikSt. This line does not have any effect, why do you have it?
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
-
I will get this error. And i removed the line @jsulm .
Here's a picture:
https://1drv.ms/i/s!AqaeHLtTIsoIhOofMu8aGwHVDcerHA -
I have tested the example "Application" which is installed with Qt.
There is the same errer while open a file, so it has nothing to do with my code!
How can i fix that? I reinstalled Qt but the error is still there...
-
@HenrikSt.
What version of Qt do you have installed?
From where did you install?
What OS?
What tool chain are you using? -
What version of Qt do you have installed? 5.7
From where did you install? C: Standard path
What OS? Windows 10 insider slow ring
What tool chain are you using? I don't know actually -
@HenrikSt.
@HenrikSt. said in Segmentation fault while open a text file:
From where did you install? C: Standard path
I meant from standard online installer or from some obscure place?
Or even a self-compiled version?Tools is the compiler tool chain.
Is it MinGW or a MSVS version? -
Online installer from qt.io
MinGw
-
@HenrikSt.
I guess you are using Qt creator as IDE, right?
When you create a new Application, it will crash after compilation and linking?
Goto "Tools"->"Options"->"Build&Run", check there the different tabs look out for warnings or errors.
-
No, it is only crashing when I want to open a file into QTextEdit. I use the Application Example from Qt and my own written Application. Both crashes when I want to load a file :/
Yes, I am using Qt Creater IDE
Other applications are running well...
-
@HenrikSt.
And what is the exact Application example which is also crashing?