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

QTabWidget

Scheduled Pinned Locked Moved Solved General and Desktop
4 Posts 2 Posters 426 Views 1 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.
  • T Offline
    T Offline
    Troyer
    wrote on last edited by
    #1

    Hi! I have a problem.
    I created three tabs QPainter, QChart and QChartView, fine. But how can I work separately on these tabs?)
    I mean, I want to draw something on the QPainter tab, something on the QChart tab, and something on the QChartView tab.
    How do I access these tabs and write code in them? Thanks

    #include "mainwindow.h"
    #include <QTabWidget>
     
    #include <QApplication>
     
    void page1(QWidget){
        
        
        
    }
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
            QMainWindow *window = new QMainWindow();
     
                window->setWindowTitle(QString::fromUtf8("MainWindow"));
                window->resize(400, 600);
     
                QWidget *centralWidget = new QWidget(window);
            QTabWidget *tabs = new QTabWidget(centralWidget);
     
            tabs->setFixedSize(400, 600);
            tabs->addTab(new QWidget(),"QPainter");
            
            tabs->addTab(new QWidget(),"QChart");
            tabs->addTab(new QWidget(),"QChartView");
     
            window->setCentralWidget(centralWidget);
            window->show();
     
            return app.exec();
    }
    
    jsulmJ 1 Reply Last reply
    0
    • T Troyer

      Hi! I have a problem.
      I created three tabs QPainter, QChart and QChartView, fine. But how can I work separately on these tabs?)
      I mean, I want to draw something on the QPainter tab, something on the QChart tab, and something on the QChartView tab.
      How do I access these tabs and write code in them? Thanks

      #include "mainwindow.h"
      #include <QTabWidget>
       
      #include <QApplication>
       
      void page1(QWidget){
          
          
          
      }
       
      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
              QMainWindow *window = new QMainWindow();
       
                  window->setWindowTitle(QString::fromUtf8("MainWindow"));
                  window->resize(400, 600);
       
                  QWidget *centralWidget = new QWidget(window);
              QTabWidget *tabs = new QTabWidget(centralWidget);
       
              tabs->setFixedSize(400, 600);
              tabs->addTab(new QWidget(),"QPainter");
              
              tabs->addTab(new QWidget(),"QChart");
              tabs->addTab(new QWidget(),"QChartView");
       
              window->setCentralWidget(centralWidget);
              window->show();
       
              return app.exec();
      }
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by jsulm
      #2

      @Troyer Either use https://doc.qt.io/qt-5/qtabwidget.html#widget to get needed widget, or do it like:

      QTabWidget *tabs = new QTabWidget(centralWidget);
      tabs->setFixedSize(400, 600);
      QWidget *painter = new QWidget();
      tabs->addTab(painter, "QPainter");
           
      tabs->addTab(new QWidget(),"QChart");
      QWidget *chart = new QWidget();
      ...
      

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

      T 1 Reply Last reply
      2
      • jsulmJ jsulm

        @Troyer Either use https://doc.qt.io/qt-5/qtabwidget.html#widget to get needed widget, or do it like:

        QTabWidget *tabs = new QTabWidget(centralWidget);
        tabs->setFixedSize(400, 600);
        QWidget *painter = new QWidget();
        tabs->addTab(painter, "QPainter");
             
        tabs->addTab(new QWidget(),"QChart");
        QWidget *chart = new QWidget();
        ...
        
        T Offline
        T Offline
        Troyer
        wrote on last edited by
        #3

        @jsulm Thanks for answer.
        Can you please still tell me how to make the function graph display on the tab? After all, there are several classes, and not one. Maybe they need to be grouped somehow into one class?

        QLineSeries *series0 = new QLineSeries();
                series0->setName("line");
                series0->append(0, 6);
                series0->append(2, 4);
                series0->append(3, 8);
                series0->append(7, 4);
                series0->append(10, 5);
                *series0 << QPointF(11, 1)
                         << QPointF(13, 3)
                         << QPointF(17, 6)
                         << QPointF(18, 3)
                         << QPointF(20, 2);
                QSplineSeries *series1 = new QSplineSeries();
                series1->setName("spline");
                series1->append(0, 6);
                series1->append(2, 4);
                series1->append(3, 8);
                series1->append(7, 4);
                series1->append(10, 5);
                *series1 << QPointF(11, 1)
                         << QPointF(13, 3)
                         << QPointF(17, 6)
                         << QPointF(18, 3)
                         << QPointF(20, 2);
                QChart *chart = new QChart();
                QChartView *chartView = new QChartView(chart);
                chartView->setRenderHint(QPainter::Antialiasing);
        
        jsulmJ 1 Reply Last reply
        0
        • T Troyer

          @jsulm Thanks for answer.
          Can you please still tell me how to make the function graph display on the tab? After all, there are several classes, and not one. Maybe they need to be grouped somehow into one class?

          QLineSeries *series0 = new QLineSeries();
                  series0->setName("line");
                  series0->append(0, 6);
                  series0->append(2, 4);
                  series0->append(3, 8);
                  series0->append(7, 4);
                  series0->append(10, 5);
                  *series0 << QPointF(11, 1)
                           << QPointF(13, 3)
                           << QPointF(17, 6)
                           << QPointF(18, 3)
                           << QPointF(20, 2);
                  QSplineSeries *series1 = new QSplineSeries();
                  series1->setName("spline");
                  series1->append(0, 6);
                  series1->append(2, 4);
                  series1->append(3, 8);
                  series1->append(7, 4);
                  series1->append(10, 5);
                  *series1 << QPointF(11, 1)
                           << QPointF(13, 3)
                           << QPointF(17, 6)
                           << QPointF(18, 3)
                           << QPointF(20, 2);
                  QChart *chart = new QChart();
                  QChartView *chartView = new QChartView(chart);
                  chartView->setRenderHint(QPainter::Antialiasing);
          
          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @Troyer Since QChartView is a QWidget you can put it in your tab:

          QChartView *chartView = new QChartView(chart);
          tabs->addTab(chartView, "QChartView");
          

          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