当前位置:   article > 正文

Qt QTabWidget详解

qtabwidget

1.常用API

  1. //添加
  2. int addTab(QWidget *page, const QString &label)
  3. //设置tab位置
  4. void setTabPosition(QTabWidget::TabPosition)
  5. //设置tab的形状
  6. void setTabShape(QTabWidget::TabShape s)

2.例子

这里简单的添加两个tab

  1. m_tabWidget = new QTabWidget(this);
  2. ui->horizontalLayout->addWidget(m_tabWidget);
  3. //add page1
  4. QFrame *page1 = new QFrame(m_tabWidget);
  5. QHBoxLayout *h1 = new QHBoxLayout(page1);
  6. QLabel *labelName = new QLabel(page1);
  7. labelName->setText("姓名: ");
  8. h1->addWidget(labelName);
  9. QLineEdit *le1 = new QLineEdit(page1);
  10. h1->addWidget(le1);
  11. //add page2
  12. QFrame *page2 = new QFrame(m_tabWidget);
  13. QHBoxLayout *h2 = new QHBoxLayout(page2);
  14. QLabel *labelName2 = new QLabel(page2);
  15. labelName2->setText("性别: ");
  16. h2->addWidget(labelName2);
  17. QComboBox *cb2 = new QComboBox(page2);
  18. cb2->addItems(QStringList()<<"男"<<"女");
  19. h2->addWidget(cb2);
  20. m_tabWidget->addTab(page1,"姓名");
  21. m_tabWidget->addTab(page2,"性别");

运行截图:

3.右键菜单

这里,只做了一个右键删除当前page页

  1. //开启右键菜单
  2. m_tabWidget->setContextMenuPolicy(Qt::CustomContextMenu);
  3. m_menu = new QMenu(this);
  4. m_actionAdd = new QAction("添加",m_menu);
  5. connect(m_actionAdd,&QAction::triggered,this,&Form::slotAdd);
  6. m_actionDel = new QAction("删除",m_menu);
  7. connect(m_actionDel,&QAction::triggered,this,&Form::slotDel);
  8. m_menu->addAction(m_actionAdd);
  9. m_menu->addAction(m_actionDel);
  10. connect(m_tabWidget,&QTabWidget::customContextMenuRequested,this,&Form::slotPopMenu);
  11. void Form::slotPopMenu(const QPoint &pos)
  12. {
  13. m_menu->exec(m_tabWidget->mapToGlobal(pos));
  14. }
  15. void Form::slotAdd()
  16. {
  17. //add page
  18. }
  19. void Form::slotDel()
  20. {
  21. m_tabWidget->removeTab(m_tabWidget->currentIndex());
  22. }

3.设置风格

以下style仅供参考

  1. const QString styles = "\
  2. QTabWidget::pane\
  3. {\
  4. border-top: 2px solid #C2C7CB;\
  5. }\
  6. QTabWidget::tab-bar\
  7. {\
  8. left: 5px;\
  9. }\
  10. QTabBar::tab\
  11. {\
  12. background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\
  13. stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,\
  14. stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);\
  15. border: 2px solid #C4C4C3;\
  16. border-bottom-color: #C2C7CB;\
  17. border-top-left-radius: 4px;\
  18. border-top-right-radius: 4px;\
  19. min-width: 8ex;\
  20. padding: 2px;\
  21. }\
  22. QTabBar::tab:selected, QTabBar::tab:hover\
  23. {\
  24. background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,\
  25. stop: 0 #fafafa, stop: 0.4 #f4f4f4,\
  26. stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);\
  27. }\
  28. QTabBar::tab:selected\
  29. {\
  30. border-color: #9B9B9B;\
  31. border-bottom-color: #C2C7CB;\
  32. }\
  33. QTabBar::tab:!selected\
  34. {\
  35. margin-top: 2px;\
  36. }";

 源码:https://download.csdn.net/download/wzz953200463/13188035

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/962228
推荐阅读
相关标签
  

闽ICP备14008679号