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. Set Delay Timer
Forum Updated to NodeBB v4.3 + New Features

Set Delay Timer

Scheduled Pinned Locked Moved Solved General and Desktop
26 Posts 8 Posters 14.6k Views 2 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.
  • Y Offline
    Y Offline
    Yrandom
    wrote on last edited by Yrandom
    #21

    WOW. All the discussion :)
    First off all, thx for the answer.
    I have one more question to fullfill my Project. I dont want to start new Topic.

    I have a class GameKonfiguration
    and class MainWindow
    and the main()

    #include "Konfiguration.h"
    #include "MainWindow.h"
        
    int main(int argc, char *argv[]) {
        // initialize resources, if needed
        // Q_INIT_RESOURCE(resfile);
    
        QApplication app(argc, argv);
        
        MainWindow *window = new MainWindow(&app);
        window->show();
    
        Konfiguration *konfiguration = new Konfiguration(&app,window);
        konfiguration->show();
    
        return app.exec();
    }
    

    in main

    Now I make this Programm so far, that when i start, both Windows open and i can Change configuration and the gamefield show and user can Play and actually i can quit the game via configuration. everything fine

    Now I want to Combine the menu bar from mainwindow and use the menu bar to open my configuration window.
    However the Problem i have is now, i cant include Header a in Header b and Header b in Header a.

    // mainwindow Header file
    #include "ui_MainWindow.h"
    #include <QApplication>
    //some Header here
    
    //try
    #include "Konfiguration.h"
    //-- not work because in Konfiguration.h i already include mainwindow.h in oder to use for the Slot etc
    
    
    using namespace std;
    
    class MainWindow : public QMainWindow {
       Q_OBJECT
    private:
        Ui::MainWindow widget;
        QApplication *app;
        // Try
    Konfiguration *confi;
        
    public:
        MainWindow(QApplication*);
      //some function
        
    signals:
        public slots:
          // function etc ........
           void openConfi();
    };
    
     
    
    
    // in mainwindow.cpp
    // Open Game Configuration
        QObject::connect(widget.SpielKonfiguration,SIGNAL(triggered()),this,SLOT(openConfi()));
        
        // End Game
        QObject::connect(widget.SpielBeenden,SIGNAL(triggered()),app,SLOT(quit()));
    
     // Configuration Window
    void MainWindow::openConfi(){
        // in this Slot , the configuration window should open
    confi->show();
    }
    
    

    Konfiguration.h and cpp

    #ifndef KONFIGURATION_H
    #define KONFIGURATION_H
    
    
    #include <QApplication>
    #include "MainWindow.h"
    // some Header here....
    
    class Konfiguration : public QDialog{
        Q_OBJECT
        
    private:
        QApplication *app;
      // here i create mainwindow pointer to Setup the gamefield
        MainWindow *spielFenster;    
           //some code here
    public:
        Konfiguration(QApplication*, MainWindow*);
        virtual ~Konfiguration();     
    
        public slots:
            void clearText();
    //      void updateTextN(QString);
    //      void updateTextM(QString);
    };
    
    
    //konfiguration.cpp
    
    // use the mainwindow pointer to set Slot 
    
      //Set N, M in VerschiebeSpiel
     QObject::connect(editN,SIGNAL(textChanged(QString)),spielFenster,SLOT(setN(QString)));
     QObject::connect(editM,SIGNAL(textChanged(QString)),spielFenster,SLOT(setM(QString)));
    
    
    

    So how can I open the Konfiguration Window via the Menu bar of Mainwindow but I can still use the Konfiguration to configure the MainWindow ?

    Muss be simple for you guys, but quite hard for newbie :)

    thx for your help

    mrjjM 1 Reply Last reply
    0
    • Y Yrandom

      WOW. All the discussion :)
      First off all, thx for the answer.
      I have one more question to fullfill my Project. I dont want to start new Topic.

      I have a class GameKonfiguration
      and class MainWindow
      and the main()

      #include "Konfiguration.h"
      #include "MainWindow.h"
          
      int main(int argc, char *argv[]) {
          // initialize resources, if needed
          // Q_INIT_RESOURCE(resfile);
      
          QApplication app(argc, argv);
          
          MainWindow *window = new MainWindow(&app);
          window->show();
      
          Konfiguration *konfiguration = new Konfiguration(&app,window);
          konfiguration->show();
      
          return app.exec();
      }
      

      in main

      Now I make this Programm so far, that when i start, both Windows open and i can Change configuration and the gamefield show and user can Play and actually i can quit the game via configuration. everything fine

      Now I want to Combine the menu bar from mainwindow and use the menu bar to open my configuration window.
      However the Problem i have is now, i cant include Header a in Header b and Header b in Header a.

      // mainwindow Header file
      #include "ui_MainWindow.h"
      #include <QApplication>
      //some Header here
      
      //try
      #include "Konfiguration.h"
      //-- not work because in Konfiguration.h i already include mainwindow.h in oder to use for the Slot etc
      
      
      using namespace std;
      
      class MainWindow : public QMainWindow {
         Q_OBJECT
      private:
          Ui::MainWindow widget;
          QApplication *app;
          // Try
      Konfiguration *confi;
          
      public:
          MainWindow(QApplication*);
        //some function
          
      signals:
          public slots:
            // function etc ........
             void openConfi();
      };
      
       
      
      
      // in mainwindow.cpp
      // Open Game Configuration
          QObject::connect(widget.SpielKonfiguration,SIGNAL(triggered()),this,SLOT(openConfi()));
          
          // End Game
          QObject::connect(widget.SpielBeenden,SIGNAL(triggered()),app,SLOT(quit()));
      
       // Configuration Window
      void MainWindow::openConfi(){
          // in this Slot , the configuration window should open
      confi->show();
      }
      
      

      Konfiguration.h and cpp

      #ifndef KONFIGURATION_H
      #define KONFIGURATION_H
      
      
      #include <QApplication>
      #include "MainWindow.h"
      // some Header here....
      
      class Konfiguration : public QDialog{
          Q_OBJECT
          
      private:
          QApplication *app;
        // here i create mainwindow pointer to Setup the gamefield
          MainWindow *spielFenster;    
             //some code here
      public:
          Konfiguration(QApplication*, MainWindow*);
          virtual ~Konfiguration();     
      
          public slots:
              void clearText();
      //      void updateTextN(QString);
      //      void updateTextM(QString);
      };
      
      
      //konfiguration.cpp
      
      // use the mainwindow pointer to set Slot 
      
        //Set N, M in VerschiebeSpiel
       QObject::connect(editN,SIGNAL(textChanged(QString)),spielFenster,SLOT(setN(QString)));
       QObject::connect(editM,SIGNAL(textChanged(QString)),spielFenster,SLOT(setM(QString)));
      
      
      

      So how can I open the Konfiguration Window via the Menu bar of Mainwindow but I can still use the Konfiguration to configure the MainWindow ?

      Muss be simple for you guys, but quite hard for newbie :)

      thx for your help

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

      @Yrandom

      the circular includes problem can often be solved with a forward of the class

      so instead of ( in the other class header)
      #include <myclass>

      you just
      do

      class MyClass; // this is a forward

      and you are allowed to have
      class Other {
      MyClass * mc;

      Since all the use of the Myclass functions, are in the CPP file, it works.

      In the CPP file you then include the actual header.

      Not sure i explained it good :(

      Please see
      http://stackoverflow.com/questions/625799/resolve-header-include-circular-dependencies

      Y 1 Reply Last reply
      2
      • mrjjM mrjj

        @Yrandom

        the circular includes problem can often be solved with a forward of the class

        so instead of ( in the other class header)
        #include <myclass>

        you just
        do

        class MyClass; // this is a forward

        and you are allowed to have
        class Other {
        MyClass * mc;

        Since all the use of the Myclass functions, are in the CPP file, it works.

        In the CPP file you then include the actual header.

        Not sure i explained it good :(

        Please see
        http://stackoverflow.com/questions/625799/resolve-header-include-circular-dependencies

        Y Offline
        Y Offline
        Yrandom
        wrote on last edited by
        #23

        @mrjj
        thx for the quick answer.

        Now I got build successfull but when I start the Programm and klick on menubar set configuration
        I got Windows disconnection and have to quit

        here is what i Changed

        ///////////////////////////////
        // in mainwindow.h
        // mainclass mainwindow
        #include <QMenuBar>
        #include <QAction>
        
        class Konfiguration; // this is the other class
        
        using namespace std;
        
        class MainWindow : public QMainWindow {
           Q_OBJECT
        private:
        Konfiguration *confi;
        //code
        }
        
        //////////////////////////
        //mainwindow.cpp
        #include "mainwindow.h"
        #include "Konfiguration.h"
        
         // Configuration Window
        void MainWindow::openConfi(){
        //
        // try to add something like confi = new Konfiguration(&app,this) like in the main() is not working either.
        //
            confi->show();
        // Debugger stoppt at show()
        }
        
        // in Konfiguration.h
        #include "MainWindow.h"
        
        class Konfiguration : public QDialog{
            Q_OBJECT
            
        private:
        code
        }
        
        
        
        
        mrjjM 1 Reply Last reply
        0
        • Y Yrandom

          @mrjj
          thx for the quick answer.

          Now I got build successfull but when I start the Programm and klick on menubar set configuration
          I got Windows disconnection and have to quit

          here is what i Changed

          ///////////////////////////////
          // in mainwindow.h
          // mainclass mainwindow
          #include <QMenuBar>
          #include <QAction>
          
          class Konfiguration; // this is the other class
          
          using namespace std;
          
          class MainWindow : public QMainWindow {
             Q_OBJECT
          private:
          Konfiguration *confi;
          //code
          }
          
          //////////////////////////
          //mainwindow.cpp
          #include "mainwindow.h"
          #include "Konfiguration.h"
          
           // Configuration Window
          void MainWindow::openConfi(){
          //
          // try to add something like confi = new Konfiguration(&app,this) like in the main() is not working either.
          //
              confi->show();
          // Debugger stoppt at show()
          }
          
          // in Konfiguration.h
          #include "MainWindow.h"
          
          class Konfiguration : public QDialog{
              Q_OBJECT
              
          private:
          code
          }
          
          
          
          
          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #24

          @Yrandom said in Set Delay Timer:

          Konfiguration *confi;

          Did you remeber to new it ?

          Konfiguration *confi; is just a pointer :)

          you MUST do
          confi = new Konfiguration()

          before using it for anything

          Y 1 Reply Last reply
          1
          • mrjjM mrjj

            @Yrandom said in Set Delay Timer:

            Konfiguration *confi;

            Did you remeber to new it ?

            Konfiguration *confi; is just a pointer :)

            you MUST do
            confi = new Konfiguration()

            before using it for anything

            Y Offline
            Y Offline
            Yrandom
            wrote on last edited by
            #25

            @mrjj

            :D my bad
            i did that but i pas the function by reference

            void MainWindow::openConfi(){
            //
             //try to add something like confi = new Konfiguration(&app,this) like in the main() is not working either.
            // pass by reference mistake :D
                confi->show();
            // Debugger stoppt at show()
            }
            
            //
            // IT work now. :D
            //
            
            
            1 Reply Last reply
            0
            • M Offline
              M Offline
              mchinand
              wrote on last edited by
              #26

              I wonder if this could be achieved using Property Animation instead of using timers and stylesheet manipulation.

              1 Reply Last reply
              2

              • Login

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