Qt进阶--(嵌入式子窗口)QTabWidget,......

本文详细介绍了如何使用QTabWidget在Qt中创建和管理嵌入式子窗口,包括添加、获取和删除子窗口的具体方法。特别强调了通过成员变量而非局部变量来解决获取子窗口控件值的问题,并提供了实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用QTabWidget实现嵌入式子窗口:

1.1.添加子窗口(新页面):

    int QTabWidget::addTab(QWidget * page, const QString & label):用给定的组件创建新的一页返回添加的新页面的索引;
    int insertTab(int index, QWidget *page, const QString &label):差不多

1.2.获取页面:

QWidget *widget(int index) const:返回指定索引的页面(注意是页面而不是子窗口,这是个坑,其实没用,下面细说)
   

1.3.删除页面:


    void removeTab(int index):删除指定索引的页面
    

1.4.还有一大堆属性方法就不多说了:int count() const,int currentIndex() const

1.5.坑与技巧

问题情境:假如我有个QPlainTextEdit类的(子窗口)控件,我已知页面的索引要获取这个控件中的值(也就是文本),

坑:那么你使用QWidget *widget(int index)方法得到的QWidget对象是页面,而不是子控件,就没有toPlainString()方法,所以你竟然不能获取子窗口对象?
解决方法:所以把子窗口声明为成员变量而不是局部变量:
 

//比如,声明变量如下:
QPlainTextEdit* te[10];//因为有多个子页面,所以是二维指针,这个10是随便写的,是最大页数;

//创建新页面以及子窗口如下:
int count=ui->tabWidget->count();
te[count]=new QPlainTextEdit(ui->tabWidget);
ui->tabWidget->addTab(te[count],"新的一页");

//这么使用子窗口:
te[index]->toPlainText();

还有用其他控件实现子窗口的方法,有时间再更,最近考试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值