I have the beginnings of a Qt GUI application created in the Qt Creator IDE. I used the project initially to show off some of the IDE's features, and in the process, I ended up adding a QPushButton, but I later removed it to start building the real program. I also used the "go to slot" feature to show that off as well, which created an entry in the .ui file which I removed after removing the button.
The issue then is, whenever I launch the program, I get the following error in my IDE console:
QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked()
All while the object pushButton does not exist anywhere in my code. I sent the project to a friend to load into his IDE, and the error was not present. I have no idea what's causing this, or if there's a cache I need to clear.
Related
I'm a beginner in Qt and currently working on a project, after I've made some changes in my code I couldn't run it, then fixed it but when opening the project the message
Unable to send command line arguments to the already running instance. It does not appear to be responding. Do you want to start a new instance of Qt Creator?
keeps popping up, it hadn't before I made those changes. The project runs ok but I had to move it from a file to my desktop because a bug kept appearing. What could I do now to make sure the message doesn't show up anymore? One more thing, I don't know what command line arguments are and I'm sure I didn't use them (at least deliberately).
The dev environment in question consists of:
Windows 7
MinGW (g++)
CMake
Qt Creator
The problem is that Qt Creator, a lovely IDE as far as I can tell, does not display programs' command-line output. It seems to have its own proprietary debug pane, but it doesn't give me, for example, runtime errors. It just tells me that the program has failed and gives me the exit code. I'm using Creator only for its C++ capabilities, and not using Qt in any way, so the proprietary pane is useless to me.
So I ask this: Can something be done? Am I missing something really, stupidly obvious like a built-in command line? Or, if not, can I at least use some filthy and/or repulsive hack to get it to display the Windows command prompt upon running a program?
Last thing; I did do some research, and found a way to edit the Qt project file to display the prompt, but... I'm using CMake, not Qt projects. So that doesn't answer my question. If I can do something similar with CMakeLists.txt, that would be wonderful. But Google has failed me on that front, so I'm not holding out too much hope.
EDIT:
I'm specifically worried about runtime errors. cout and printf are rerouted to Qt Creator's window, so that's fine. I don't get runtime errors unless the debugger catches them, and the frequency of that is less than ideal.
Windows GUI programs don't have standard output.
In Windows there are two possible entry points in the standard runtime. The console one and the windows one. The console one will inherit console window from parent process or create a new one and connect the standard input/output/error streams to it, while the windows one will leave them unconnected unless they were explicitly redirected by the invoking process. A Qt application is (probably; you could have console Qt-Core application) a GUI application and Qt Creator (nor any other Windows IDE) does not redirect the output explicitly. Therefore the standard output is not open at all and the writes are being discarded.
However windows have separate logging facility for debugging purpose. This is what you see in the debug window. You can write to it using the native OutputDebugString API. I am sure you can also direct the Qt debug log there.
Note, that when it tells you the program has exited with status 0, it means the program ran, which in turn means it compiled successfully and thus there were no errors from g++. There may have been warnings, in which case you should see them in the appropriate other window. Compiler and program output are different things; the IDE does read the compiler output.
I've got problems with Qt. A few hours ago, all out of the sudden, Qt 5.0.2 did not update my ui_mainwindow.h header file anymore when I changed something in the designer. I noticed, that when I created a new project for testing purposes, that all of the stuff I created in my normal project UI was now in the ui header file of the new test project - my whole UI compiler was broken. I tried different stuff until I decided to update Qt to 5.2 - and it did not show me any errors anymore, it worked! But still, I can't compile. When I press on Debug now, it gives me the exception 0xc000039 - no matter which project to compile.
Does anyone know how to resolve this?
I'm trying to use QT Creator for an open-source project I downloaded from github.
After some fuddling around I managed to get the project to compile in QT Creator and run in debug mode.
However, I have an issue : strangely the breakpoints that I set are only available for that instance for the debug run for QT Creator. When I stop the debugging, and relaunch the debugging, the previously stated breakpoints are still there, but they are no longer valid. (meaning Qt Creator skips over them). I've verified that new breakpoints are still valid - it's the old ones that become invalid even though they are still listed.
I did not even update any code, just added breakpoints, hit debug and the old breakpoints became invalid even though they are still showing.
No sacarsm intended, but is this a "feature"? If so, how do I turn it off?
If not a feature, what can I try?
It's very painful to re-add breakpoints every time I run a debug.
Using Mac OSX 10.9 here, Qt 5.2, with Qt Creator 3.0 for Mac.
Thanks.
EDIT : Some more info. I realised that whenever the breakpoint works, it has a tiny hour glass next to it, like in the picture. What does the hour glass mean? It could just be something dumb that I'm not doing....
in the end I filed a bug with Qt Creator. For those interested pls check here.
https://bugreports.qt-project.org/browse/QTCREATORBUG-11184
When I launch a basic Qt app within Eclipse, it crashes with a ".exe has stopped working" error.
The context :
its the basic app obtained when creating a Qt GUI project (with a MainWindow), nothing was changed in it, haven't even added a button
PATH has all the necessary stuff (mingw, msys, qt)
project properties and eclipse paths should be ok too (c++, qt, mingw)
the .pro file is ok, no file missing
clean & rebuild, as well as relaunching eclipse doesn't resolve the problem
upon compilation there is no error, just an ignored "cannot lstat `ui_.h': No such file or directory". No relevant result found when searching around that.
if launched, stops with the afforementionned error. Details show its the app that crashed, with error code c0000005, offset 00002cb20. Search results tells me c0000005 is access violation, but where would that come from ? It's the basic app...
tried to launch with eclipse being in admin mode to prevent accesss violation, didn't help
if launched in debug mode, stops with error "Can't find a source file at ../mingw/main.c". I thought I forgot something when I installed mingw, so I did its setup again, but that did not create that file. No relevant search results here either.
my setup: eclipse classic x32 with c++ & php stuff, qt 4.8, win7 x64
I'm getting lost here. I already worked with Qt under Eclipse before (on winXP and vista), got my bunch of installing problems but this one is a first. Anybody went through this already ? Any leads on how to find where the access violation is happening ? Reading this question makes me think it's a Qt Eclipse Integration problem, but how can I circumvent that ?
Thanks for any leads !
Your project doesn't have a TARGET = set in the .pro file. This was probably caused by an Eclipse/Qt plugin wizard screw up, so just typing a new target may not work, other files may have to be renamed manually.
FWIW development on the Qt plugin for Eclipse was halted some time ago, building outside of Qt Creator is definitely one way of making life more difficult for yourself.