• 7206阅读
  • 5回复

关于addTab [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 倒序阅读 楼主  发表于: 2009-09-15
void HMW::HNew()
{
        QWidget *tab = new QWidget();                           //创建一个QWidget
        tab->setObjectName(QString::fromUtf8("tabNew"));          //setObjectName

        QTextEdit *textedit=new QTextEdit(tab);                   //创建一个TextEdit,且以刚才建立的QWidget为父部件
        textedit->setObjectName(QString::fromUtf8("texteditNew"));  //setObject

        textedit->setGeometry(10,10,250,250);                    //设置textEdit的相对位置及其大小
        this->HTab->addTab(tab, QString::fromUtf8("NewText"));    //给TabWidget添加页面
}

上面是我定义的一个槽函数,功能是给TabWidget添加一个页面,而且页面里有一个TextEdit,

当按钮clicked时,执行以上代码,

由于上面的指针textedit只是一个局部变量,当槽函数执行完毕,这个指针就不能用了,就不能用其来对刚才创建的那个TextEdit进行编辑了。

现在我想对添加页面里的那个TextEdit进行操作,例如要保存其内容等等,那么,它现在的指针是什么呢?或者变量名是什么?
[ 此帖被iiiyyyhhhsss在2009-09-16 14:08重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-15
  this->HTab->addTab(tab

你这不一串父子关系么?一级一级不就找到了
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2009-09-16
一级一级也找不到啊。。

我试过
this->HTab->textedit
this->HTab->widget(this->HTab->currentIndex)->textedit
this->HTab->textedit

都没有啊

你想想看,如果我不按那个按钮,这个TextEdit是不存在的,要当我按了按钮,它才会出现,所以程序开始是肯定不会一级一级下去找到的啊
离线dbzhang800

只看该作者 3楼 发表于: 2009-09-16
恩,没注意看。
那你为什么不子类化一下你这儿的QWidget 把 QTextEdit 加进去呢?
离线iiiyyyhhhsss

只看该作者 4楼 发表于: 2009-09-16
你说的有道理,我试试看

不过刚才的方式总有个答案,而且感觉这样用起来也方便,还是希望有人能给个答案。。
[ 此帖被iiiyyyhhhsss在2009-09-16 00:25重新编辑 ]
离线iiiyyyhhhsss

只看该作者 5楼 发表于: 2009-09-16
我用了子类化的方法,但是还是找不到?不知为什么。。或者可能由于我创建的页面是建立在槽函数中的,所以程序默认的Widget还是原来的那个,而不是我添加的那个子类化的widget。。。
[ 此帖被iiiyyyhhhsss在2009-09-16 08:49重新编辑 ]
快速回复
限100 字节
 
上一个 下一个