TabWidget

增加页

右键tabWidget,在弹出菜单中选择“插入页”-》“在当前页之前”/“在当前页之后”。

删除页

右键tabWidget,在弹出菜单中选择“2的页1”-》“删除”。其中“2的页1”表示有2个tab,当前选择的是1。

 

将页面增加到TabWidget上

创建窗体
    ServoSelectFrm* ptr = new ServoSelectFrm();
    // 关闭时自动销毁
    ptr->setAttribute(Qt::WA_DeleteOnClose);
    //增加tab页,第二个参数是页面的名称
    int cur = ui.tabWidget->addTab(ptr, QString::number(ui.tabWidget->count() + 1));
    //
    // ui.tabWidget->setTabIcon(cur, QIcon(":/image/1.ico"));
    //
    ui.tabWidget->setCurrentIndex(cur);
    //
    ui.tabWidget->setVisible(true);

关闭所有Tab页面

 

// 删除所有TabWidget页面
 ui.tabWidget->clear();

 

获取当前页面的索引

  //获取当前页面的索引,如果没有索引就是-1
  int NowIndex = ui.tabWidget->currentIndex();

 

 删除指定索引的页面

 if (NowIndex < 0)
 {
     return;
 }
 ui.tabWidget->removeTab(NowIndex);

 

 tabsClosable     每个页的关闭按钮

注:只是发送信号,不会执行具体的删除动作,要配合QTabWidget::tabCloseRequested写代码删除页面

 


 

  //tabsClosable     每个页的关闭按钮
  //显示关闭按钮
  ui.tabWidget->setTabsClosable(true);
  //隐藏关闭按钮
  ui.tabWidget->setTabsClosable(false);

 

PixPin_2025-11-20_10-34-35

 

 

当某个选项卡被关闭时触发事件

(必须通过页面自带的关闭按钮才能触发 tabsClosable=true,通过代码的Remove都不触发的)

 

QTabWidget::tabCloseRequested

 

 //绑定事件
 connect(ui.tabWidget, &QTabWidget::tabCloseRequested, this, &QtWidgetsApplication2::TabControlPageCloseAction);

/// <summary>
/// Tabcontrol页关闭事件
/// </summary>

void QtWidgetsApplication2::TabControlPageCloseAction(int TabPageIndex)
{
    if (TabPageIndex < 0)
    {
        return;
    }
    QWidget* toDeleteFrm = ui.tabWidget->widget(TabPageIndex);//获取对应索引的页面
    toDeleteFrm->close();
}

 获取对应索引的tab的文本

   //获取对应索引的tab的文本
   QString str = ui.tabWidget->tabText(NowIndex);

设置对应索引的页面 使能  与 不使能

//设置对应索引的页面 使能  与 不使能
//使能
ui.tabWidget->setTabEnabled(NowIndex,true);
//不使能
ui.tabWidget->setTabEnabled(NowIndex, false);

 将当前页转换成窗体对象

//获取当前页的指针
 QWidget* wit=ui.tabWidget->currentWidget();
 //转换
 ServoSelectFrm *fuk= qobject_cast<ServoSelectFrm*>(wit);
 if (fuk)//转换成功
 {
     fuk->Test1();
 }
//如果使用object_cast转换,都会转换成功,好像不分是什么类型都可以转换成功,但是
qobject_cast必须是这个类型的才能转换成功

 

posted @ 2025-11-20 09:51  家煜宝宝  阅读(5)  评论(0)    收藏  举报