天天看点

qt5.4(qt creator 3.3.0): QTabWidget

void RobotScene::initSetupWidget()

{

//    ConfigWidget* config_widget = new ConfigWidget();

//    setup_widget_pool_["ConfigWidget"] = config_widget;

  WorkSetupWidget* work_setup = new WorkSetupWidget;

  setup_widget_pool_.push_back ( work_setup );

  InstallWidget* install_widget = new InstallWidget();

  setup_widget_pool_.push_back ( install_widget );

//    TaskWidget* task_widget = new TaskWidget();

//    setup_widget_pool_["TaskWidget"] = task_widget;

  MapWidget* map_widget = new MapWidget();

  setup_widget_pool_.push_back ( map_widget );

//  NaviWidget* navi_widget = new NaviWidget();

//  setup_widget_pool_.push_back(navi_widget);

  setup_widget_ = new QTabWidget;

  setup_widget_->setAutoFillBackground ( true );

  QPixmap pixmap ( ":/images/work_settings/icon/ico4.png" );

  QPalette   palette;

  palette.setBrush (  setup_widget_->backgroundRole(), QBrush ( pixmap ) );

  setup_widget_->setPalette ( palette );

  setup_widget_->setTabPosition ( QTabWidget::West );

//wsh

 setup_widget_->setStyleSheet("QTabBar::tab {  background-image: url(:/images/work_settings/icon/ico4.png);}");

 // setup_widget_->setStyleSheet("QTabBar::tab {  background-color: black; }");

//    QDesktopWidget* desktop_widget = QApplication::desktop();

//    QRect application_rect = desktop_widget->screenGeometry();

  setup_widget_->setIconSize ( QSize ( 142, 70 ) );  ;

  QIcon* tab_icon;

  QIcon* tab_icon_off;

  for ( QVector<TabWidget*>::iterator it = setup_widget_pool_.begin();

        it != setup_widget_pool_.end();

        it ++ )

  {

    TabWidget* widget = *it;

    tab_icon = widget->getIconOn();

    tab_icon_off = widget->getIconOff();

    QString tab_text = widget->getSceneText();

    if ( ( it == setup_widget_pool_.begin() ) )

    {

      setup_widget_->addTab ( widget,  *tab_icon_off, tab_text ); //scene->getSceneTabText());

    }

    else

    {

      setup_widget_->addTab ( widget,  *tab_icon, tab_text ); //scene->getSceneTabText());

    }

  }

  connect ( setup_widget_, SIGNAL ( currentChanged ( int ) ),

            this, SLOT ( setupWidgetCurrentChanged ( int ) ) );

}

 setup_widget_->setCurrentIndex ( index );

  QIcon* tab_icon_on;

  QIcon* tab_icon_off;

  for ( QVector<TabWidget*>::iterator it = setup_widget_pool_.begin();

        it != setup_widget_pool_.end();

        it ++ )

  {

    TabWidget* widget = *it;

    tab_icon_on = widget->getIconOn();

    tab_icon_off = widget->getIconOff();

    int index_list = setup_widget_->indexOf ( widget );

    if ( index == index_list )

    {

      setup_widget_->setTabIcon ( index_list, *tab_icon_off );

    }

    else

    {

      setup_widget_->setTabIcon ( index_list, *tab_icon_on );

    }

  }

  current_tab_widget_index_ = index;

}