I am developing an app using the Qt Nokia SDK.
I have googled and searched forums, but I can't seem to find anything about how to set application version.
I'm wrapping the sis file using the Nokia smart installer, so I would also like the information to pop up when I'm using the smart installer.
I guess I have to edit the .pro file, but I don't know what to insert to be able to set the application version, application name, etc.
By default a display name for your application is derived from the TARGET variable value in your .pro file. This display name is used e.g. in menu grid and SIS installation package. To change it, use the DEPLOYMENT.display_name .pro file variable:
DEPLOYMENT.display_name = My Great Qt App
If memory serves me well, the installataion package version number is derived from the VERSION variable:
VERSION = 1.2.3
Further reading: qmake variable reference
Related
I am trying to create a project assosiated with the SimConnect SDK.
I am new to QT, and in Visual Studio, I just had a SimConnect.h file, a .lib file, and a .dll file, and I managed to make it work. Now I am trying to create a C++ widget project, using the same SDK, but in QT.
I put the header file in my QT project's folder, where the other default code and header files are located, and then I went to the project and added them as existing files, as I read in Google. I'm having problems with the actual library.
I've been searching Google for a guide on how to add a library file to the project, I did some things I saw on the internet, like the LIBS line for example, but I probably did it wrong, even though it looked very simple.
I am not sure where to drop my dll/library files in the project directory, maybe the problem is I always put them in the wrong spot.
The furthest I got to, was an error message saying "Unresolved external symbol", and a red writing saying ".obj file not found" on every function I tried to use from the SimConnect functions, which probably means QT couldn't find my library/dll file.
I also tried to add the libraries from the "Add library" option in the project, but that didn't work too.
EDIT: it also warns "warning: LNK4272: library machine type 'X86' conflicts with target machine type 'x64'" maybe it has to do something with it.
(Posted on behalf of the OP).
Solved! My problem was my machine was set to 64bit, while the library was set to 32bit, so I downloaded the 32bit kit, and ran the project through that, and it worked!
I am using an independent version control management program (SmartGit) alongside Qt Creator, and I would prefer not to use Qt Creator for version control management.
It is becoming a nuisance that Qt always prompts me regarding whether I'd like to add new files to Git (when I add new files to the Qt Creator project), and whether I'd like to remove files from Git (when I remove files from the project).
Earlier today, I mistakenly added a file to Git through Qt Creator when adding a new file to the Qt Creator project. A few minutes later, I wished to temporarily remove the file from the project (likely to be re-added later). When I removed the file, Qt Creator dutifully asked me if I'd like to remove the file from version control - giving me a warning that the file might be removed permanently from the file system. Understanding the risk, I nonetheless decided to test the behavior and I said "yes, remove the file from Git as well as removing it from the project". Just as the warning forewarned, the file was removed from the file system and I then had to reconstruct it.
I could simply live with it and occasionally use Qt Creator's version control features in addition to SmartGit's, and/or I could use SmartGit directly to deal with any mistaken occasional uses ogreatf Qt Creator's version control features. However, I'd rather simply disable Qt Creator's version control features entirely, for convenience.
I looked through every Qt Creator option I could find in order to see if it is possible to disable Qt Creator's version control features (even if the project's files are under version control). Unfortunately, I cannot find an option to disable Qt Creator's version control features, anywhere. A careful Google search also revealed nothing.
Is it possible to disable Qt Creator's version control features, even if the project's files are under version control? If so, how is it done?
Help->About Plugins... and deselect the version control plugins.
I'm developing a closed source application and to do so in accordance with the LGPL I have to dynamically link Qt's libraries to my application. Does Qt do this by default or do I have to take steps to do so? If that's the case how would I go about doing it?
Qt uses dynamic linking by default.
You'll notice this immediately during deployment to a non-developer machine, because your code will not run without the Qt libraries.
If your concern is the LGPL, just be careful when compiling Qt itself. Most LGPL violations with Qt are not because of static linking (since dynamic is the default), but for compiling Qt with non-default parameters.
LGPL is not just that the library must be provided along your binaries, but also that you specify how your users can build themselves the LGPL part. If you compile Qt yourself and do not use the pre-compiled binaries from the website, you must document that part of your build configuration in your release!
As soon as you get something running on your program, start preparing a release version for a non-developer environment without Qt installed. Your program should fail as soon as you delete the DLLs that you must copy along your program (or whatever format your OS uses).
It does it by default, statically linking seems to be quite involved judging by the many questions on the site regarding it.
I was successfully able to compile and run my Qt application. However, when I move the .exe file outside its original path, I found out that I have to manually copy the Qt DLLs (e.g. mingw10.dll, qtcore4.dll). Is there any dynamic way to link these libraries with my application?
I think you mean you want to "statically" link these libraries with your application.
Basically this means that everything will be rolled inside your exe, and you will have no need of those dlls anymore.
There are advantages to to static linking, but there are also disadvantages as well. You should be absolutely sure that this is what you want to do before you go this way.
Check out this link which explains the difference in depth Dynamic Linking vs Static Linking
As for your specific issue, if you are sure you want to use static linking you will have to change your Qt setup to be built statically. By default the Qt distribution is setup to use dynamic linking. There is a handy guide for that here.
Basically when you setup the build you have to run "configure -static" to change all the project settings to use static linking instead of dynamic linking. And then build Qt over again.
You should also verify your Qt license. If you are using the Qt LGPL license and you want to to link statically you will have to include all your object files (.o and .obj) as Mihai Limbășan wisely explained in his comment. If you have bought and paid for Qt, then you have no problem.
If the DLLs are on the PATH for the application, then they will be found and work. So, you could add where your Qt binaries/dlls are into the %PATH% environment variable. If you're going to create an installer for your application, you'll need to either package these libraries in so they're in the bin directory - or you'll have to expect every user to install and possibly compile Qt themselves (hint: go with the first option. :) )
Our application is localised and I have pulled in all the standard Qt_*.qm files as well so that my Qt dialogs are translated as much as possible.
However one of our distributors wants to add the Danish translation and its not in the standard Qt translation files.
How can I get Qt to create the file so I can send it off for translation?
There is some information about translation of Qt itself:
http://doc.trolltech.com/4.6/internationalization.html#produce-translations
it's said that templates for qt translation (*.ts files) should be in the ${QTDIR}/translations directory. I can't see them in my Qt4 installation from official Ubuntu repository but I think they should be included in distributions provided by Nokia on official download page.
Edit
Idea how to generate new empty *.ts file for qt itself can be found in translations/translations.pri directory of qt sources. For Qt 4.6.3 it will be
lupdate -locations relative -no-ui-lines -I../include -I../include/Qt corelib gui-ts ../qt_my.ts