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

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();

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值