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. Layout issue in the window.

Layout issue in the window.

Scheduled Pinned Locked Moved General and Desktop
13 Posts 4 Posters 4.4k Views 3 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.
  • M Offline
    M Offline
    maximus
    wrote on last edited by
    #4

    Thank you for the picture.

    You could have a ListView on the left replacing the TabWidget, then 2 QStackWidget on the right.
    Would be best if you could show the interaction with the 3 UI at the bottom so we can understand better what you need. Hand written UI works fine for saving time :)


    Free Indoor Cycling Software - https://maximumtrainer.com

    1 Reply Last reply
    1
    • N Offline
      N Offline
      N.Sumi
      wrote on last edited by N.Sumi
      #5

      Thank you Mr. Maximus,

      In the moment I don't have full stuff to show. But I can explain the whole thing for better understanding of my problem. But approximately I will going to some stuff some like this. Please have a look on controls and visualization window. In my case I also will be having another dock on Right side. Thid right side dock will also make communication Visualization screen,

      https://www.dropbox.com/s/99tf0o2o86u4kte/Mainlayout.PNG?dl=0

      Might after end of the code.It might look this stuff

      https://www.dropbox.com/s/ovepkozf07nw2lc/threeclusters_.bmp?dl=0

      thank in advance,
      Sumi

      1 Reply Last reply
      0
      • N Offline
        N Offline
        N.Sumi
        wrote on last edited by N.Sumi
        #6

        Here is part of my code:
        mainwindow::mainwindow()
        {
        Qwidget *window = new Qwidget;
        size
        title
        creat Actions();
        createmenubar();
        createtoolbar();

        Q**** mainlayout = new Q***; ////////////////////////how to give the layout like in the linkof the above post
        mainlayout->addwidget/layout (tabwidget goes here);
        mainlayout->addlayout(gridodopengldocks);
        mainlayout->addLayout(property_dock);
        windows->setlayout(mainlayout)

        }
        void mainwindow:: createmenubar()
        {
        //menu stuff file edit blah etc
        }
        void mainwindow::createtoolbar()
        {
        fonttoolbar->addaction***** blah
        }
        void mainwindow::create_tabW_widget_container()
        {
        }
        void mainwindow::createdocks_for_opengl()
        {
        Qgridlayout *gridodopengldocks = new QGridlayout;
        Qdockwidget 'dock = new Qdockwidget;
        QOpenGLWidget *glwidget = new QopenglWidget;
        dock->addwidget(glWidget);
        }

        void mainwindow::createporperty()
        {
        Qdockwidget 'prop_ock = new Qdockwidget;
        property_dock->setpositon (Right..)

        }

        1 Reply Last reply
        0
        • M Offline
          M Offline
          maximus
          wrote on last edited by maximus
          #7

          Oh I see now.

          You only need a QHorizontalLayout a the bottom for your 3 QWidgets

          So basically:

          1. Set Main Layout to a Vertical Layout
          2. Insert Menu Bar, Tool, bar, specifiy a maximum height so it doesn't take too much
          3. Create a Horizontal Layout, insert your 3 QWidget there
          4. Insert the Horizontal Layout(3) in the Vertical Layout

          You can do all this in the Designer just for testing
          Good luck,
          Max


          Free Indoor Cycling Software - https://maximumtrainer.com

          1 Reply Last reply
          0
          • N Offline
            N Offline
            N.Sumi
            wrote on last edited by
            #8
            This post is deleted!
            1 Reply Last reply
            0
            • N Offline
              N Offline
              N.Sumi
              wrote on last edited by SGaist
              #9

              Hi Maximus ,

              I was trying this as you told.But it is giving me the crash. I don't know Where I did mistake.
              It is giving error :: QLayout: Cannot add a null layout to QHBoxLayout/

              And here is code clip..

              MainWindow:: MainWindow()
              {
                  QWidget *window = new QWidget();
                  setCentralWidget(window);
              
              
                  QHBoxLayout *HLayout = new QHBoxLayout;
                  HLayout->addLayout(tabbox );
                  HLayout->addLayout(grid);
                  HLayout->addLayout(docks);
              
                  QVBoxLayout *mainLayout = new QVBoxLayout;
                  mainLayout->addLayout(HLayout);
                  window->setLayout(mainLayout);
              
              
                  createActions();
                  createMenus();
                  createToolBar();
                 createPropertyDock();
                  createtabwidget();
                 createDockWidget();
              
              
                  QString message = tr("A context menu is available by right-clicking");
                  statusBar()->showMessage(message);
              
                  setWindowTitle(tr("Mainwindow"));
                  setMinimumSize(160, 160);
                  resize(1200, 800);
              }
              
              void MainWindow :: createPropertyDock()
              {
                 QHBoxLayout *docks =new QHBoxLayout;
                  QDockWidget *dock = new QDockWidget(tr("Properties"), this);
                  docks->addWidget(dock);
              
                  dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
              
                  addDockWidget(Qt::RightDockWidgetArea, dock);
              
              }
               void MainWindow :: createtabwidget()
                {
                  QHBoxLayout *tabbox = new QHBoxLayout;
                  QTabWidget *tabWidget = new QTabWidget;
                  tabbox->addWidget(tabWidget);
                  tabWidget->setTabPosition(QTabWidget::West);
              
                  tabWidget->setSizePolicy(QSizePolicy ::Fixed , QSizePolicy ::Fixed);
                       //tabWidget->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
                  tabWidget->setMinimumSize(256,1160);
                  tabWidget->setMaximumSize(256,1160);
              }
              void MainWindow::createDockWidget()
              {
                 QGridLayout *grid = new QGridLayout;
                  QDockWidget *dw = new QDockWidget;
                  grid->addWidget(dw);
                  dw->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
                      dw->setWidget(new QOpenGLWidget);
              }
              

              thnaks in advance ,
              Sumi

              [edit: Added missing coding tags ``` SGaist]

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

                @N.Sumi said:
                Hi, just a question.
                in
                void MainWindow :: createtabwidget()
                you create the local variable:
                QHBoxLayout *tabbox = new QHBoxLayout;
                and in
                MainWindow:: MainWindow()
                Layout->addLayout(tabbox );

                If they are the same ?, then tabbox should live in MainWindow class and it should be
                tabbox = new QHBoxLayout;
                in createtabwidget()
                My guess is that you did declare them in .h but made a local var by accident. ?

                1 Reply Last reply
                0
                • N Offline
                  N Offline
                  N.Sumi
                  wrote on last edited by
                  #11

                  Hi mrjj,

                  you are right. They both are same. But I have changed them to as you said. But it's stilling not working. I dont know what the mistake am doing here.

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    maximus
                    wrote on last edited by
                    #12

                    Good way to find where it crash it put qDebug message here and there, or use the debugger.


                    Free Indoor Cycling Software - https://maximumtrainer.com

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

                      Hi,

                      If it crashes, a simple run through the debugger will tell you where exactly it misbehave

                      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
                      0

                      • Login

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