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. Access and inheritance
Forum Updated to NodeBB v4.3 + New Features

Access and inheritance

Scheduled Pinned Locked Moved Solved General and Desktop
49 Posts 5 Posters 11.5k Views 4 Watching
  • 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.
  • tomyT tomy

    @kshegunov

    So we will never have to call the base class's constructor from the subclass, because if there is an explicit constructor for the base class, the compiler calls (implicitly) for us (with the absence of an explicit call from us), and if there is no constructor for the base class, the compiler creates a default one and implicitly calls that in the subclass. Hence, we had better never involve ourselves with calling a base class's constructor directly (from the subclass)! :) :)

    kshegunovK Offline
    kshegunovK Offline
    kshegunov
    Moderators
    wrote on last edited by
    #30

    What @mrjj said, plus the moment you define a constructor, the compiler stops generating for you. Thus if you define a constructor with parameters, the compiler will not generate a default constructor for you. Beautiful system, right? :)

    Read and abide by the Qt Code of Conduct

    tomyT 1 Reply Last reply
    3
    • mrjjM mrjj

      @tomy
      Hi
      Nope its just how the QWidgets look.
      If you change the icons to flat style,
      it will look more "modern"

      You could use something like
      https://github.com/laserpants/qt-material-widgets
      if you want to go all in for "modern" look.

      tomyT Offline
      tomyT Offline
      tomy
      wrote on last edited by
      #31

      @mrjj

      If you change the icons to flat style, it will look more "modern"

      Hi,
      The example you posted look very modern and stylish, but too advanced for me now. Thank you.
      I like to go step by step. So for the icons, I must download some "flat .png related files" from the Internet and substitute the old ones with these. Right?

      mrjjM 1 Reply Last reply
      0
      • tomyT tomy

        @mrjj

        If you change the icons to flat style, it will look more "modern"

        Hi,
        The example you posted look very modern and stylish, but too advanced for me now. Thank you.
        I like to go step by step. So for the icons, I must download some "flat .png related files" from the Internet and substitute the old ones with these. Right?

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #32

        @tomy
        Hi
        Yes, that could be the first step.
        Maybe a bit of stylesheet to make QToolbar more flat to fit the new icons.
        I dont have an image of spreadsheet app around so im not sure what else you can
        do currently. will write of get any other ideas.

        1 Reply Last reply
        1
        • kshegunovK kshegunov

          What @mrjj said, plus the moment you define a constructor, the compiler stops generating for you. Thus if you define a constructor with parameters, the compiler will not generate a default constructor for you. Beautiful system, right? :)

          tomyT Offline
          tomyT Offline
          tomy
          wrote on last edited by
          #33

          @kshegunov

          Beautiful system, right? :)

          Right. :)

          @mrjj

          Yes, that could be the first step.
          Maybe a bit of stylesheet to make QToolbar more flat to fit the new icons.
          I dont have an image of spreadsheet app around so im not sure what else you can
          do currently. will write of get any other ideas.

          Hi, Thanks. So I need to lookup "stylesheet".

          mrjjM 1 Reply Last reply
          0
          • tomyT tomy

            @kshegunov

            Beautiful system, right? :)

            Right. :)

            @mrjj

            Yes, that could be the first step.
            Maybe a bit of stylesheet to make QToolbar more flat to fit the new icons.
            I dont have an image of spreadsheet app around so im not sure what else you can
            do currently. will write of get any other ideas.

            Hi, Thanks. So I need to lookup "stylesheet".

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #34

            @tomy

            Hi
            https://doc.qt.io/qt-5/stylesheet.html

            tomyT 2 Replies Last reply
            1
            • mrjjM mrjj

              @tomy

              Hi
              https://doc.qt.io/qt-5/stylesheet.html

              tomyT Offline
              tomyT Offline
              tomy
              wrote on last edited by
              #35

              @mrjj
              Thanks to you. :)

              1 Reply Last reply
              0
              • mrjjM mrjj

                @tomy

                Hi
                https://doc.qt.io/qt-5/stylesheet.html

                tomyT Offline
                tomyT Offline
                tomy
                wrote on last edited by
                #36

                @mrjj Hi,

                I created a new project called MySpreadsheet and added a few more options to the context menu and renewed the icons to flat ones.
                Now when I run the project, it runs normally, but when we close it, the follwoing message is written in the Application Output window:

                Starting D:\Projects\Qt\MySpreadsheet\MySpreadsheet\build-MySpreadsheet-Desktop_Qt_5_12_0_MinGW_64_bit-Debug\debug\MySpreadsheet.exe...
                FTH: (243752): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***
                The program has unexpectedly finished.
                The process was ended forcefully.
                D:/Projects/Qt/MySpreadsheet/MySpreadsheet/build-MySpreadsheet-Desktop_Qt_5_12_0_MinGW_64_bit-Debug/debug/MySpreadsheet.exe crashed.

                What is the problem please?
                Is it not related to the .pro file, please?

                jsulmJ 1 Reply Last reply
                0
                • tomyT tomy

                  @mrjj Hi,

                  I created a new project called MySpreadsheet and added a few more options to the context menu and renewed the icons to flat ones.
                  Now when I run the project, it runs normally, but when we close it, the follwoing message is written in the Application Output window:

                  Starting D:\Projects\Qt\MySpreadsheet\MySpreadsheet\build-MySpreadsheet-Desktop_Qt_5_12_0_MinGW_64_bit-Debug\debug\MySpreadsheet.exe...
                  FTH: (243752): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***
                  The program has unexpectedly finished.
                  The process was ended forcefully.
                  D:/Projects/Qt/MySpreadsheet/MySpreadsheet/build-MySpreadsheet-Desktop_Qt_5_12_0_MinGW_64_bit-Debug/debug/MySpreadsheet.exe crashed.

                  What is the problem please?
                  Is it not related to the .pro file, please?

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #37

                  @tomy Please run through debugger and post stack trace after it crashed...

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

                  tomyT 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @tomy Please run through debugger and post stack trace after it crashed...

                    tomyT Offline
                    tomyT Offline
                    tomy
                    wrote on last edited by
                    #38

                    @jsulm
                    Do you mean by pressing F5, please?
                    If so, I did it, but how to post stack trace?

                    0_1550499661735_Capture_1.PNG

                    1 Reply Last reply
                    0
                    • mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by
                      #39

                      Hi
                      It is the list to the right we are after

                      The code
                      for entries Level 2,3 would help a lot.

                      tomyT 1 Reply Last reply
                      2
                      • mrjjM mrjj

                        Hi
                        It is the list to the right we are after

                        The code
                        for entries Level 2,3 would help a lot.

                        tomyT Offline
                        tomyT Offline
                        tomy
                        wrote on last edited by
                        #40

                        @mrjj,
                        Hi,

                        0_1550500483783_1.PNG

                        Do you mean I copy and paste code for level 7 and 11 here?
                        7 is the project's code but 11 includes thousands of lines of code.

                        mrjjM 1 Reply Last reply
                        0
                        • tomyT tomy

                          @mrjj,
                          Hi,

                          0_1550500483783_1.PNG

                          Do you mean I copy and paste code for level 7 and 11 here?
                          7 is the project's code but 11 includes thousands of lines of code.

                          mrjjM Offline
                          mrjjM Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on last edited by
                          #41

                          @tomy
                          Hi
                          The line it shows when you click on 11 ? line 1339

                          tomyT 1 Reply Last reply
                          1
                          • mrjjM mrjj

                            @tomy
                            Hi
                            The line it shows when you click on 11 ? line 1339

                            tomyT Offline
                            tomyT Offline
                            tomy
                            wrote on last edited by
                            #42

                            @mrjj, Hi,

                            Here you are:

                            0_1550504186993_2.PNG

                            1 Reply Last reply
                            0
                            • mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by
                              #43

                              Hi
                              it was not what i as i had hoped, it being inside some of the user code.
                              I wonder if you have a double free.
                              Did you change anything in main.cpp?

                              tomyT 1 Reply Last reply
                              0
                              • mrjjM mrjj

                                Hi
                                it was not what i as i had hoped, it being inside some of the user code.
                                I wonder if you have a double free.
                                Did you change anything in main.cpp?

                                tomyT Offline
                                tomyT Offline
                                tomy
                                wrote on last edited by tomy
                                #44

                                @mrjj Hi,

                                Here is main.cpp:

                                #include "myspreadsheet.h"
                                #include <QApplication>
                                #include <QSplashScreen>
                                
                                int main(int argc, char *argv[])
                                {
                                    QApplication app(argc, argv);
                                
                                    QSplashScreen* splash = new QSplashScreen;
                                    splash->setPixmap(QPixmap(":/images/splash.jpg"));
                                    splash->show();
                                
                                    Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop;
                                    splash->showMessage(QObject::tr("Setting up the main window..."), topRight, Qt::white);
                                
                                
                                    MySpreadsheet* mySP = new MySpreadsheet;
                                    if(argc > 1)
                                        mySP -> loadFile(argv[1]);
                                
                                    mySP -> show();
                                    splash -> finish(mySP);
                                    delete splash;
                                
                                    return app.exec();
                                }
                                

                                I added those splash stuff and now apparently it's fine!

                                1 Reply Last reply
                                0
                                • mrjjM Offline
                                  mrjjM Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #45

                                  Hi
                                  Does look fine.
                                  Try set breakpoint in main.cpp and press f10 to signle step over it and
                                  see if we can find the reason for the crash.
                                  Since its first on close, it might be inside MySpreadsheet indirectly.

                                  tomyT 1 Reply Last reply
                                  1
                                  • mrjjM mrjj

                                    Hi
                                    Does look fine.
                                    Try set breakpoint in main.cpp and press f10 to signle step over it and
                                    see if we can find the reason for the crash.
                                    Since its first on close, it might be inside MySpreadsheet indirectly.

                                    tomyT Offline
                                    tomyT Offline
                                    tomy
                                    wrote on last edited by
                                    #46

                                    @mrjj
                                    Hi, It's fine now. :) Thanks so much. :)

                                    mrjjM 1 Reply Last reply
                                    1
                                    • tomyT tomy

                                      @mrjj
                                      Hi, It's fine now. :) Thanks so much. :)

                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #47

                                      @tomy
                                      Hi
                                      What was it ? Just to learn also.

                                      tomyT 1 Reply Last reply
                                      0
                                      • mrjjM mrjj

                                        @tomy
                                        Hi
                                        What was it ? Just to learn also.

                                        tomyT Offline
                                        tomyT Offline
                                        tomy
                                        wrote on last edited by
                                        #48

                                        @mrjj Hi,

                                        The faulty one didn't include splash stuff and was this way I think:

                                        #include "myspreadsheet.h"
                                        #include <QApplication>
                                        
                                        int main(int argc, char *argv[])
                                        {
                                            QApplication app(argc, argv);
                                            MySpreadsheet* mySP = new MySpreadsheet;
                                            mySP -> show();
                                        
                                            return app.exec();
                                        }
                                        

                                        Then I added the splash stuff. Now it "apparently" is fine, but I'm still not sure not do I know of the exact reason for that red message either. :(

                                        1 Reply Last reply
                                        1
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #49

                                          You are not deleting mySP. The memory will be cleaned up at the end of the application but this doesn't mean that the destructor will be called. So if you have anything there that does something it's not guaranteed to be called.

                                          You should rather keep it on the stack or delete it after returning from app.exec();

                                          Interested in AI ? www.idiap.ch
                                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          1 Reply Last reply
                                          3

                                          • Login

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