Qt Programming Language
-
Hi @Annabelle,
You've taken many good initiatives to learn C++; well done.
I've switched from Visual Studio to Codeblocks, since that particular IDE:
- Didn't take forever to install on my machine.
- Didn't require any further Windows updates.
- Didn't require a Microsoft account or any other account to use.
- Doesn't take up much room on my machine.
- It's more accessible to screenreaders than Visual Studio or Qt Creator.
These are good reasons to use the Code::Blocks IDE.
Out of curiosity, if I was to code a Qt project with Codeblocks, is it possible that the code I make would be translated into the actual elements like buttons, checkboxes, sliders, textboxes, radio buttons, text areas, combo boxes, and the like?
Yes. Each GUI element in Qt is represented by a C++ object. So, if you want to create a button, all you have to do is to write code that constructs a
QPushButton
object, and then call a function to make it visible on the screen.This process is completely independent of the IDE. Regardless of whether you use Qt Creator or Visual Studio or Code::Blocks, the code you write to create the Qt button would be exactly the same.
I know that in Codeblocks, each type of project has an Editor window, so if I focus on that, I would be able to put the code in there, then compile the finished project.
Have you managed to compile and run a Hello World project in Code::Blocks yet?
I've even registered with the forum at http://www.cplusplus.com, but the people there told me that C++ isn't exactly the language for making GUI elements, and that something like Qt would be a framework for those.
They are correct in a sense. The C++ language itself does not have the concept of GUIs. Nonetheless, Qt is a C++ library that enables you to write C++ code to create GUIs.
I did, however, manage to create a "Hello World" project in C++ with Codeblocks. How would I share that on this forum?
To share a small project, just copy your C++ code from the Code::Blocks Editor and paste them into this forum. The C++ code is all text.
-
@JKSH said in Qt Programming Language:
Hi @Annabelle,
You've taken many good initiatives to learn C++; well done.
I've switched from Visual Studio to Codeblocks, since that particular IDE:
- Didn't take forever to install on my machine.
- Didn't require any further Windows updates.
- Didn't require a Microsoft account or any other account to use.
- Doesn't take up much room on my machine.
- It's more accessible to screenreaders than Visual Studio or Qt Creator.
These are good reasons to use the Code::Blocks IDE.
Out of curiosity, if I was to code a Qt project with Codeblocks, is it possible that the code I make would be translated into the actual elements like buttons, checkboxes, sliders, textboxes, radio buttons, text areas, combo boxes, and the like?
Yes. Each GUI element in Qt is represented by a C++ object. So, if you want to create a button, all you have to do is to write code that constructs a
QPushButton
object, and then call a function to make it visible on the screen.This process is completely independent of the IDE. Regardless of whether you use Qt Creator or Visual Studio or Code::Blocks, the code you write to create the Qt button would be exactly the same.
I know that in Codeblocks, each type of project has an Editor window, so if I focus on that, I would be able to put the code in there, then compile the finished project.
Have you managed to compile and run a Hello World project in Code::Blocks yet?
I've even registered with the forum at http://www.cplusplus.com, but the people there told me that C++ isn't exactly the language for making GUI elements, and that something like Qt would be a framework for those.
They are correct in a sense. The C++ language itself does not have the concept of GUIs. Nonetheless, Qt is a C++ library that enables you to write C++ code to create GUIs.
I did, however, manage to create a "Hello World" project in C++ with Codeblocks. How would I share that on this forum?
To share a small project, just copy your C++ code from the Code::Blocks Editor and paste them into this forum. The C++ code is all text.
When I attempt to compile the Hello World project in Codeblocks, I get this error.
What did I do wrong? -
@Annabelle Did you install MinGW? If so, is c:\MinGW\bin\gcc.exe valid path pointing to the C compiler?
-
@jsulm said in Qt Programming Language:
@Annabelle Did you install MinGW? If so, is c:\MinGW\bin\gcc.exe valid path pointing to the C compiler?
- Yes.
- Yes.
And now when I try to build and run, I get this error.
-
@Annabelle said in Qt Programming Language:
And now when I try to build and run, I get this error.
I don't have experience with Code::Blocks, so my ability to help you is a bit limited. Nonetheless, my guess is that you installed Code::Blocks first, and then you downloaded MinGW from a different place. Is this correct? If so, there is likely a configuration problem.
The cleanest way forward is probably to:
- Uninstall Code::Blocks
- Uninstall MinGW
- Download the single package which sets up both for you. Select codeblocks-17.12mingw-setup.exe from http://www.codeblocks.org/downloads/26
If you still have issues after all of this, the folks at the Code::Blocks forum might be better able to help you: forums.codeblocks.org/
-
@JKSH said in Qt Programming Language:
@Annabelle said in Qt Programming Language:
And now when I try to build and run, I get this error.
I don't have experience with Code::Blocks, so my ability to help you is a bit limited. Nonetheless, my guess is that you installed Code::Blocks first, and then you downloaded MinGW from a different place. Is this correct? If so, there is likely a configuration problem.
The cleanest way forward is probably to:
- Uninstall Code::Blocks
- Uninstall MinGW
- Download the single package which sets up both for you. Select codeblocks-17.12mingw-setup.exe from http://www.codeblocks.org/downloads/26
If you still have issues after all of this, the folks at the Code::Blocks forum might be better able to help you: forums.codeblocks.org/
I tried downloading Codeblocks Mingw Setup from https://sourceforge.net/projects/codeblocks/, but it fails every time. What do I do next?
-
@Annabelle said in Qt Programming Language:
but it fails every time
Works here. Do you have bad Internet connection?
Try https://www.fosshub.com/Code-Blocks.html?dwl=codeblocks-17.12mingw-setup.exe -
@jsulm said in Qt Programming Language:
@Annabelle said in Qt Programming Language:
but it fails every time
Works here. Do you have bad Internet connection?
Try https://www.fosshub.com/Code-Blocks.html?dwl=codeblocks-17.12mingw-setup.exeMy internet connection is through the main headquarters of the apartment complex in which I live. It's powered by Centurylink, and can be hit or miss at times.
-
@Annabelle Did you try the link I posted?
-
@jsulm said in Qt Programming Language:
@Annabelle Did you try the link I posted?
Yes. First it failed, then when I switched from my thumb drive to a backup hard drive and tried again, it succeeded!
-
@jsulm said in Qt Programming Language:
@Annabelle Did you try the link I posted?
Yes. And now when I try to compile my "Hello World" project, I get this error.
What did I do wrong? -
@Annabelle said in Qt Programming Language:
And now when I try to compile my "Hello World" project, I get this error.
The error says that your compiler is too old and it doesn't support the C++ 2011 standard. But I'm confused: If you're doing a basic C++ Hello World program, why is Code::Blocks trying to include Qt?
I suggest you leave Qt out for now. Just focus on learning plain C++. This way, it doesn't matter if you have an old compiler.
-
@JKSH said in Qt Programming Language:
@Annabelle said in Qt Programming Language:
And now when I try to compile my "Hello World" project, I get this error.
The error says that your compiler is too old and it doesn't support the C++ 2011 standard. But I'm confused: If you're doing a basic C++ Hello World program, why is Code::Blocks trying to include Qt?
I suggest you leave Qt out for now. Just focus on learning plain C++. This way, it doesn't matter if you have an old compiler.
Now when I compile a project, with regular C++ code, here's what I got in return.
-
@Annabelle
It looks like you have progressed! It seems to be successfully rubnning yourgcc
compiler.You should open up your
Sources
folder in the left-hand pane so that we can see what file(s) you have. And perhaps open your main/only.cpp
source file into the right-hand pane so that we can see that too.The error message indicates that some
.cpp
source file has an "odd" character in it, on line #9. The sort of stray character that perhaps got in there from a mis-typing. -
@Annabelle said in Qt Programming Language:
Now when I compile a project, with regular C++ code, here's what I got in return.
The error message is "stray '\240' in program". This means your .cpp file contains a character that the compiler does not accept.
'\240' is a specially-formatted character that represents a space. It can appear when someone copies code from a website or a program like Microsoft Word, and then pastes it into their IDE.
Your compiler says that the error is in line 9. I suggest you completely erase lines 8 to 10 to get rid of the '\240' character, and then re-type those lines by hand.
-
@JKSH said in Qt Programming Language:
@Annabelle said in Qt Programming Language:
Now when I compile a project, with regular C++ code, here's what I got in return.
The error message is "stray '\240' in program". This means your .cpp file contains a character that the compiler does not accept.
'\240' is a specially-formatted character that represents a space. It can appear when someone copies code from a website or a program like Microsoft Word, and then pastes it into their IDE.
Your compiler says that the error is in line 9. I suggest you completely erase lines 8 to 10 to get rid of the '\240' character, and then re-type those lines by hand.
What's the \240 character? I'm confused on that one!
-
@Annabelle said in Qt Programming Language:
What's the \240 character? I'm confused on that one!
As I mentioned before, it is a specially-formatted character that represents a space.
There are many ways to represent text: Sighted people draw lines to represent a character, Braille users arrange dot patterns to represent a character, while computers use a number to represent a character. For example, computers represent 'A' as the number 65, 'B' as the number 66, and so on.
In computers, there are multiple ways to represent a space. \240 is one such representation. Unfortunately, this representation causes problems for your compiler when it is pasted into your IDE.
Since it is a space character, I doubt that your screenreader will read it out. Sighted people can't see the bad character on the screen either.
The easiest thing to do is to erase the offending line from your code and re-type the whole line by hand.
-
@JKSH said in Qt Programming Language:
@Annabelle said in Qt Programming Language:
What's the \240 character? I'm confused on that one!
As I mentioned before, it is a specially-formatted character that represents a space.
There are many ways to represent text: Sighted people draw lines to represent a character, Braille users arrange dot patterns to represent a character, while computers use a number to represent a character. For example, computers represent 'A' as the number 65, 'B' as the number 66, and so on.
In computers, there are multiple ways to represent a space. \240 is one such representation. Unfortunately, this representation causes problems for your compiler when it is pasted into your IDE.
Since it is a space character, I doubt that your screenreader will read it out. Sighted people can't see the bad character on the screen either.
The easiest thing to do is to erase the offending line from your code and re-type the whole line by hand.
I typed the offending line by hand, and here's what I got.
-
@Annabelle Looks good, it works
-
@Annabelle said in Qt Programming Language:
not sure Qt is a Programming Language, maybe this was already discussed, hard to know when topic has 300+ posts...
It looks like the OP never created a new thread and asked all his questions in the same one.