Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Console Applications
QtWS25 Last Chance

Console Applications

Scheduled Pinned Locked Moved Solved General and Desktop
47 Posts 8 Posters 25.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tomy
    wrote on 7 Mar 2017, 18:20 last edited by
    #1

    Hi all,

    through this wizard:
    File > New file or Project > Application > Qt console application, I created a project and wrote this into main.cpp:

    #include <QCoreApplication>
    #include <qtextstream.h>
    
    QTextStream cout(stdout, QIODevice::WriteOnly);
    
    int main(int argc, char** argv)
    {
        // avoid compiler warnings
        Q_UNUSED(argc)
        Q_UNUSED(argv)
        QString s1("Paris");
        QString s2("London");
        // string concatenation
        QString s = s1 + " " + s2 + "!";
        cout << s << endl;
    }
    

    When I run it using Desktop kit, it shows nothing!
    What is the reason please?

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mostefa
      wrote on 7 Mar 2017, 18:38 last edited by mostefa 3 Jul 2017, 18:38
      #2

      The result of Qt console application is available inside qtcreator

      in application ouput

      As described in this sample image

      alt text

      1 Reply Last reply
      2
      • T Offline
        T Offline
        tomy
        wrote on 7 Mar 2017, 19:14 last edited by tomy 3 Jul 2017, 19:14
        #3

        Good, thank you.
        Where are these kinds of apps used and useful?

        M 1 Reply Last reply 7 Mar 2017, 19:28
        0
        • T tomy
          7 Mar 2017, 19:14

          Good, thank you.
          Where are these kinds of apps used and useful?

          M Offline
          M Offline
          mostefa
          wrote on 7 Mar 2017, 19:28 last edited by
          #4

          @tomy said in Console Applications:

          Good, thank you.
          Where are these kinds of apps used and useful?

          If you want to have an application without any Human machine interface

          1 Reply Last reply
          0
          • T Offline
            T Offline
            tomy
            wrote on 7 Mar 2017, 19:31 last edited by
            #5

            Does it mean an app in communication with another app/hardware (without any show to the owner of the machine/app/hardware), like in a refrigerator?

            M A E 3 Replies Last reply 7 Mar 2017, 19:37
            0
            • T tomy
              7 Mar 2017, 19:31

              Does it mean an app in communication with another app/hardware (without any show to the owner of the machine/app/hardware), like in a refrigerator?

              M Offline
              M Offline
              mostefa
              wrote on 7 Mar 2017, 19:37 last edited by
              #6

              @tomy said in Console Applications:

              Does it mean an app in communication with another app/hardware (without any show to the owner of the machine/app/hardware), like in a refrigerator?

              I am not sure,but i think yes

              This is what wikipedia says about Console application

              https://en.wikipedia.org/wiki/Console_application

              ...For data processing tasks and computer administration..

              Maybe expiremented people ,can enlighten us a bit more ?

              1 Reply Last reply
              1
              • T tomy
                7 Mar 2017, 19:31

                Does it mean an app in communication with another app/hardware (without any show to the owner of the machine/app/hardware), like in a refrigerator?

                A Offline
                A Offline
                ambershark
                wrote on 7 Mar 2017, 19:59 last edited by
                #7

                @tomy No... console apps are applications your run on the console/terminal.

                In linux a lot of applications are console only. No GUI.

                Console applications can have a UI just not a GUI.

                Think about almost any command you've ever run, it's a console application.

                Things like tar, ls, cp, rmdir, etc are all console apps.

                Most utilities provide a console method with their applications. So things like winzip will have their gui mode but also a console mode. This helps in automation and running applications from batch scripts, etc.

                Even the compiler you use in Qt Creator is a console application.

                I work on the command line (console) more than I actually do in an IDE like Creator. Almost all development tools are console only. Cmake, mingw, gcc, ldd, gdb, etc. Cmake does have a GUI for windows but on other platforms it's all console.

                Hope that helps you understand the difference.

                My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                T 1 Reply Last reply 7 Mar 2017, 20:20
                5
                • A ambershark
                  7 Mar 2017, 19:59

                  @tomy No... console apps are applications your run on the console/terminal.

                  In linux a lot of applications are console only. No GUI.

                  Console applications can have a UI just not a GUI.

                  Think about almost any command you've ever run, it's a console application.

                  Things like tar, ls, cp, rmdir, etc are all console apps.

                  Most utilities provide a console method with their applications. So things like winzip will have their gui mode but also a console mode. This helps in automation and running applications from batch scripts, etc.

                  Even the compiler you use in Qt Creator is a console application.

                  I work on the command line (console) more than I actually do in an IDE like Creator. Almost all development tools are console only. Cmake, mingw, gcc, ldd, gdb, etc. Cmake does have a GUI for windows but on other platforms it's all console.

                  Hope that helps you understand the difference.

                  T Offline
                  T Offline
                  tomy
                  wrote on 7 Mar 2017, 20:20 last edited by
                  #8

                  @ambershark

                  No... console apps are applications your run on the console/terminal.

                  Like CMD on Windows, or when I run qmake, binarycreator .exe file by CMD, yeah?

                  In linux a lot of applications are console only. No GUI.

                  Console applications can have a UI just not a GUI.

                  Yes, I've written many many console apps in C++ so far, but I was curious to know their application in the real world.

                  Think about almost any command you've ever run, it's a console application.

                  Things like tar, ls, cp, rmdir, etc are all console apps.

                  I don't know these extensions :-) but I got your mean.

                  Most utilities provide a console method with their applications. So things like winzip will have their gui mode but also a console mode. This helps in automation and running applications from batch scripts, etc.

                  Does it mean this provide the user of of such an app with "two" ways of executing a given app? If so, why should the programmer bother himself for that extra way!?

                  Even the compiler you use in Qt Creator is a console application.

                  And does it mean that the Qt Creator has two parts: an IDE (which is visual) and we work on it, and a practical and functional part which we don't deal with it directly but it does the work?

                  I work on the command line (console) more than I actually do in an IDE like Creator. Almost all development tools are console only. Cmake, mingw, gcc, ldd, gdb, etc. Cmake does have a GUI for windows but on other platforms it's all console.

                  Ow great.
                  A funny story: When I was always writing console applications (all the drills, exercises and try-this-s of the C++ programming book of B.Stroustrup), I didn't like them and would think that the only benefit of these hard-working on writing these apps is to make us ready to use them on GUI apps!

                  Hope that helps you understand the difference.

                  It helped much and thank you. :-)

                  A 1 Reply Last reply 7 Mar 2017, 21:28
                  0
                  • T tomy
                    7 Mar 2017, 20:20

                    @ambershark

                    No... console apps are applications your run on the console/terminal.

                    Like CMD on Windows, or when I run qmake, binarycreator .exe file by CMD, yeah?

                    In linux a lot of applications are console only. No GUI.

                    Console applications can have a UI just not a GUI.

                    Yes, I've written many many console apps in C++ so far, but I was curious to know their application in the real world.

                    Think about almost any command you've ever run, it's a console application.

                    Things like tar, ls, cp, rmdir, etc are all console apps.

                    I don't know these extensions :-) but I got your mean.

                    Most utilities provide a console method with their applications. So things like winzip will have their gui mode but also a console mode. This helps in automation and running applications from batch scripts, etc.

                    Does it mean this provide the user of of such an app with "two" ways of executing a given app? If so, why should the programmer bother himself for that extra way!?

                    Even the compiler you use in Qt Creator is a console application.

                    And does it mean that the Qt Creator has two parts: an IDE (which is visual) and we work on it, and a practical and functional part which we don't deal with it directly but it does the work?

                    I work on the command line (console) more than I actually do in an IDE like Creator. Almost all development tools are console only. Cmake, mingw, gcc, ldd, gdb, etc. Cmake does have a GUI for windows but on other platforms it's all console.

                    Ow great.
                    A funny story: When I was always writing console applications (all the drills, exercises and try-this-s of the C++ programming book of B.Stroustrup), I didn't like them and would think that the only benefit of these hard-working on writing these apps is to make us ready to use them on GUI apps!

                    Hope that helps you understand the difference.

                    It helped much and thank you. :-)

                    A Offline
                    A Offline
                    ambershark
                    wrote on 7 Mar 2017, 21:28 last edited by
                    #9

                    @tomy Yea exactly like cmd on windows. That is the console for a windows platform.

                    Real world console applications are things like utilities, servers, etc. Some you might know in windows are ipconfig, ping, net, etc.

                    Those "extensions" are all applications in a posix environment. Linux/osx/android/etc.

                    I can give you a real world example for the multi-UI approach... Recently I was contracted to write a program that handled packaging of files for distribution to embedded devices like credit card terminals, etc. We'll call it package manager.

                    This package manager had a GUI where you could build the packages easily with drag and drop from the filesystem, etc. It handled all the devices types you could create the packages for, and generally was easy to use as GUIs tend to be.

                    However, there was a build and automation team at this company who needed to make these packages as well. For them I provided the same functionality but in a CLI (command line interface AKA a console application). This allowed them to automate creating of packages with their ruby scripts. Also it allowed the SCM build management team to create packages as parts of the build for customers all from cmake and other automated build environments. Qmake could do it as well.

                    So basically, GUIs save a lot of typing work, but require human interaction. CLIs you can pass the information in via a file or on the command line, however you want, and it's automated. So it can all be run as part of an automated thing.

                    There are a lot of times where I prefer console apps to GUI ones. Most people who want to mess with files on their system would open a file manager (in windows Explorer), click around to browse to their files, etc. For me I prefer the console. I would open a terminal, cd to the directory I need, cp to copy files, mv to move, etc. I much prefer typing to a mouse. A mouse is slow, typing is very fast, especially if you know hot keys for everything.

                    A good example of this.. let's say you wanted to know your IP address (in windows)... With a keyboard not even touching your mouse you could hit Window+R type cmd hit enter. Then type ipconfig /all<enter> and you're done. That's using the CLI. To do the same thing in the GUI, you have to click start, control panel, Network Settings, Right click your adapter, properties, double click TCP/IP v4, and finally you have your IP address... It would take me about 3 seconds with a keyboard and upwards of 15-20s with a mouse.

                    And finally yes, most (all?) IDEs are just ways to wrap the underlying console tools. So Qt Creator uses mingw or visual studio as it's compiler, and gdb (or vs?) as it's debugger. Everything you do in Qt Creator can be done (very easily) without it. You can do it on the command line, or you can use other IDEs.

                    As a die hard vim user I prefer VI compatible IDEs like slickedit or clion (those aren't free though). Creator has some basic vim support which is cool, as does visual studio. CLion is my favorite these days though. It doesn't have support for Qml at the moment which annoys me but I think when I get time I will write a Qml plugin for it, assuming they don't beat me to it. ;)

                    A final example... in Qt Creator you would hit build, underneath here is what it would do with a hidden console:

                    qmake
                    mingw32-make -j4
                    

                    So you could do that on your own without the IDE if you wanted. This is more prevalent in osx or linux than in windows though. Windows command line stuff is annoying rather than helpful like it is in a posix environment.

                    My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                    T 1 Reply Last reply 8 Mar 2017, 12:11
                    5
                    • T tomy
                      7 Mar 2017, 19:31

                      Does it mean an app in communication with another app/hardware (without any show to the owner of the machine/app/hardware), like in a refrigerator?

                      E Offline
                      E Offline
                      Eeli K
                      wrote on 7 Mar 2017, 22:26 last edited by
                      #10

                      @tomy said in Console Applications:

                      Does it mean an app in communication with another app/hardware (without any show to the owner of the machine/app/hardware), like in a refrigerator?

                      This is called embedded software. SW + HW like an "intelligent" refrigerator is an embedded system. Console applications can be command line applications which means you write one command (with command line arguments) and the application runs without further interaction. A console application can also have a TUI, text based user interface (see the wikipedia article mentioned above) using for example ncurses library. Or it can be line based interactive like many C++ tutorial applications, writing output line by line and receiving text input one line at a time.

                      Actually many of the real life GUI applications have some console features. If nothing else, you can start it with an argument like "--version" (many GNU/Linux apps) or "/?" (many Windows apps) and they output the version number or short help. Many apps can take any file name as an argument and try to open it as if you chose the file from File->Open. In your own applications command line arguments can be very useful in development phase, you (or a test user) can give --debug argument and your main() code switches debugging with qDebug on. Or you can switch features on/off without changing the code and rebuilding. In Qt Creator open Projects->Run and you can add Command line arguments there.

                      In your program you can handle command line arguments with QCommandLineParser, or in simple cases just get them with QCoreApplication::arguments() and handle the string list.

                      1 Reply Last reply
                      2
                      • A ambershark
                        7 Mar 2017, 21:28

                        @tomy Yea exactly like cmd on windows. That is the console for a windows platform.

                        Real world console applications are things like utilities, servers, etc. Some you might know in windows are ipconfig, ping, net, etc.

                        Those "extensions" are all applications in a posix environment. Linux/osx/android/etc.

                        I can give you a real world example for the multi-UI approach... Recently I was contracted to write a program that handled packaging of files for distribution to embedded devices like credit card terminals, etc. We'll call it package manager.

                        This package manager had a GUI where you could build the packages easily with drag and drop from the filesystem, etc. It handled all the devices types you could create the packages for, and generally was easy to use as GUIs tend to be.

                        However, there was a build and automation team at this company who needed to make these packages as well. For them I provided the same functionality but in a CLI (command line interface AKA a console application). This allowed them to automate creating of packages with their ruby scripts. Also it allowed the SCM build management team to create packages as parts of the build for customers all from cmake and other automated build environments. Qmake could do it as well.

                        So basically, GUIs save a lot of typing work, but require human interaction. CLIs you can pass the information in via a file or on the command line, however you want, and it's automated. So it can all be run as part of an automated thing.

                        There are a lot of times where I prefer console apps to GUI ones. Most people who want to mess with files on their system would open a file manager (in windows Explorer), click around to browse to their files, etc. For me I prefer the console. I would open a terminal, cd to the directory I need, cp to copy files, mv to move, etc. I much prefer typing to a mouse. A mouse is slow, typing is very fast, especially if you know hot keys for everything.

                        A good example of this.. let's say you wanted to know your IP address (in windows)... With a keyboard not even touching your mouse you could hit Window+R type cmd hit enter. Then type ipconfig /all<enter> and you're done. That's using the CLI. To do the same thing in the GUI, you have to click start, control panel, Network Settings, Right click your adapter, properties, double click TCP/IP v4, and finally you have your IP address... It would take me about 3 seconds with a keyboard and upwards of 15-20s with a mouse.

                        And finally yes, most (all?) IDEs are just ways to wrap the underlying console tools. So Qt Creator uses mingw or visual studio as it's compiler, and gdb (or vs?) as it's debugger. Everything you do in Qt Creator can be done (very easily) without it. You can do it on the command line, or you can use other IDEs.

                        As a die hard vim user I prefer VI compatible IDEs like slickedit or clion (those aren't free though). Creator has some basic vim support which is cool, as does visual studio. CLion is my favorite these days though. It doesn't have support for Qml at the moment which annoys me but I think when I get time I will write a Qml plugin for it, assuming they don't beat me to it. ;)

                        A final example... in Qt Creator you would hit build, underneath here is what it would do with a hidden console:

                        qmake
                        mingw32-make -j4
                        

                        So you could do that on your own without the IDE if you wanted. This is more prevalent in osx or linux than in windows though. Windows command line stuff is annoying rather than helpful like it is in a posix environment.

                        T Offline
                        T Offline
                        tomy
                        wrote on 8 Mar 2017, 12:11 last edited by
                        #11

                        @ambershark

                        I agree that these console uses are very prevalent in mac os and linux and you have been on linux and it has made it that you prefer console to mouse clicks.
                        I think windows command line stuff is not very annoying (and you used it to demonstrate the ability of a cmd compared to mouse clicks in the IP example!)

                        Lets teach me (!) using a CLI instead of the IDE in Qt Creator:
                        As shown above, I've created a console project (in the first post of the thread), then wrote a simple code in the main.cpp.
                        Now in the IDE I can click on run (or ctrl+r) to see the result. Then it finishes. How to do these things (this process) using CLI without using the IDE?

                        As an out of scope question: do you return the base of CMD (DOS OS) to Unix?

                        jsulmJ A 2 Replies Last reply 8 Mar 2017, 12:20
                        0
                        • T tomy
                          8 Mar 2017, 12:11

                          @ambershark

                          I agree that these console uses are very prevalent in mac os and linux and you have been on linux and it has made it that you prefer console to mouse clicks.
                          I think windows command line stuff is not very annoying (and you used it to demonstrate the ability of a cmd compared to mouse clicks in the IP example!)

                          Lets teach me (!) using a CLI instead of the IDE in Qt Creator:
                          As shown above, I've created a console project (in the first post of the thread), then wrote a simple code in the main.cpp.
                          Now in the IDE I can click on run (or ctrl+r) to see the result. Then it finishes. How to do these things (this process) using CLI without using the IDE?

                          As an out of scope question: do you return the base of CMD (DOS OS) to Unix?

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on 8 Mar 2017, 12:20 last edited by
                          #12

                          @tomy "As an out of scope question: do you return the base of CMD (DOS OS) to Unix?" - what does it mean? What is base?

                          Writing a simple CLI C++ app without IDE in a terminal (CMD):

                          • Use an editor to write your cpp file (for example vim or what ever): vim myapp.cpp
                          • Then call the compiler: g++ -o myapp myapp.cpp
                          • Then start your app: ./myapp
                            That's all for a simple app.
                            In Qt creator you can see what it does if you press CTRL-R in "Compile Output" tab: it uses only CLI tools, like qmake, compiler (for example g++), linker,...

                          Console apps are not only important on UNIX/Linux/MacOS but even on Windows. You need them for example to write scripts, build software,...

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          1 Reply Last reply
                          2
                          • T tomy
                            8 Mar 2017, 12:11

                            @ambershark

                            I agree that these console uses are very prevalent in mac os and linux and you have been on linux and it has made it that you prefer console to mouse clicks.
                            I think windows command line stuff is not very annoying (and you used it to demonstrate the ability of a cmd compared to mouse clicks in the IP example!)

                            Lets teach me (!) using a CLI instead of the IDE in Qt Creator:
                            As shown above, I've created a console project (in the first post of the thread), then wrote a simple code in the main.cpp.
                            Now in the IDE I can click on run (or ctrl+r) to see the result. Then it finishes. How to do these things (this process) using CLI without using the IDE?

                            As an out of scope question: do you return the base of CMD (DOS OS) to Unix?

                            A Offline
                            A Offline
                            ambershark
                            wrote on 8 Mar 2017, 18:55 last edited by ambershark 3 Aug 2017, 18:57
                            #13

                            @tomy @jsulm's example is perfect for linux but since I know you don't know linux yet and are using windows I'll give you the same thing for windows:

                            Launch a cmd and do the following:

                            > mkdir test
                            > cd test
                            
                            create a main.cpp with somthing like:
                            #include <iostream>
                            
                            using namespace std;
                            
                            int main()
                            {
                               cout << "hello world" << endl;
                               return 0;
                            }
                            
                            > qmake -project
                            > qmake
                            > mingw32-make
                            > test.exe
                            

                            This assumes you have /path/to/qt/bin in your path variable in order to use and access qmake. It also assumes you have mingw32 compiler installed. If not substitute compilation command mingw32-make for whatever compiler you have.

                            This is a great example of where linux is easier than windows on a command line (from our other thread). There is no real additional setup in linux, all the stuff @jsulm wrote works right out of the box.

                            Edit: Explaining some of the commands --

                            qmake -project Will create you a test.pro file. This is only done once to bootstrap your project file. After that you modify that .pro file to add the things you need.

                            qmake evaluates the project file and creates a makefile for you.

                            mingw32-make invokes the make program for the mingw compiler. This will execute the Makefile that was generated when you ran qmake and build your application using mingw32-g++, and other pieces it needs to compile and link.

                            My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                            1 Reply Last reply
                            3
                            • T Offline
                              T Offline
                              tomy
                              wrote on 8 Mar 2017, 21:23 last edited by
                              #14

                              Thank you very much.
                              One question:

                              "> test.exe"

                              Why should we have a test.exe file?

                              mrjjM 1 Reply Last reply 8 Mar 2017, 21:31
                              0
                              • T tomy
                                8 Mar 2017, 21:23

                                Thank you very much.
                                One question:

                                "> test.exe"

                                Why should we have a test.exe file?

                                mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on 8 Mar 2017, 21:31 last edited by
                                #15

                                @tomy
                                Hi
                                The test.exe comes from the executing the real makefile as neatly explained
                                in section "mingw32-make " :)

                                1 Reply Last reply
                                0
                                • T Offline
                                  T Offline
                                  tomy
                                  wrote on 8 Mar 2017, 21:32 last edited by
                                  #16

                                  Hi,

                                  I asked because I don't have that file in the test folder!

                                  mrjjM 1 Reply Last reply 8 Mar 2017, 21:39
                                  0
                                  • T tomy
                                    8 Mar 2017, 21:32

                                    Hi,

                                    I asked because I don't have that file in the test folder!

                                    mrjjM Offline
                                    mrjjM Offline
                                    mrjj
                                    Lifetime Qt Champion
                                    wrote on 8 Mar 2017, 21:39 last edited by mrjj 3 Aug 2017, 21:57
                                    #17

                                    @tomy
                                    Well do you see .o file ? Maybe there is a build folder one level up?
                                    If not, then show the log (text) you get from running mingw32-make (step)
                                    Maybe there is compile or link error as that would do that no .exe is created.

                                    Ah, sorry. Its in the release folder

                                    alt text

                                    A 1 Reply Last reply 8 Mar 2017, 22:31
                                    1
                                    • mrjjM mrjj
                                      8 Mar 2017, 21:39

                                      @tomy
                                      Well do you see .o file ? Maybe there is a build folder one level up?
                                      If not, then show the log (text) you get from running mingw32-make (step)
                                      Maybe there is compile or link error as that would do that no .exe is created.

                                      Ah, sorry. Its in the release folder

                                      alt text

                                      A Offline
                                      A Offline
                                      ambershark
                                      wrote on 8 Mar 2017, 22:31 last edited by
                                      #18

                                      Oops sorry I forget that in windows things like Release/ and Debug/ folders. :)

                                      My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                                      mrjjM 1 Reply Last reply 8 Mar 2017, 22:33
                                      1
                                      • A ambershark
                                        8 Mar 2017, 22:31

                                        Oops sorry I forget that in windows things like Release/ and Debug/ folders. :)

                                        mrjjM Offline
                                        mrjjM Offline
                                        mrjj
                                        Lifetime Qt Champion
                                        wrote on 8 Mar 2017, 22:33 last edited by
                                        #19

                                        @ambershark
                                        Well i had to follow the sample and see. Was not sure what would really happen :)

                                        A 1 Reply Last reply 8 Mar 2017, 22:35
                                        0
                                        • mrjjM mrjj
                                          8 Mar 2017, 22:33

                                          @ambershark
                                          Well i had to follow the sample and see. Was not sure what would really happen :)

                                          A Offline
                                          A Offline
                                          ambershark
                                          wrote on 8 Mar 2017, 22:35 last edited by
                                          #20

                                          @mrjj Lol. I'm glad it actually worked since I just typed that out without testing anything. And I don't use windows much so I could easily have messed it up. :)

                                          My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

                                          1 Reply Last reply
                                          0

                                          1/47

                                          7 Mar 2017, 18:20

                                          • Login

                                          • Login or register to search.
                                          1 out of 47
                                          • First post
                                            1/47
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved