• 6416阅读
  • 2回复

[提问]如何让Form1显示完成后直接自动显示Form2 [复制链接]

上一主题 下一主题
离线peterlin82
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-21
Form1,Form2是小弟用Qt Creator产生的Dialog
我用以下方式开启Form1:
Form1 *p1=new Form1;
p1->exec();

然后将开启Form2的程式码写在Form1的constructor中。
程式码如下:
Form1::Form1(QWidget *parent)
    : QDialog(parent), ui(new Ui::Form1)
{
    ui->setupUi(this);
    Form2 *p2=new Form2;
    p2->exec();
}
结果却是必须等到Form2 close()之后Form1才会显示出来。

小弟希望达到的效果是Form1显示完成后直接自动显示Form2。
请问我该如何做?麻烦前辈们帮忙解惑了。
感激不尽。

注:因特殊原因一定要用exec();不可用show();
离线dbzhang800

只看该作者 1楼 发表于: 2011-04-21
引用楼主peterlin82于2011-04-21 08:15发表的 如何让Form1显示完成后直接自动显示Form2 :
注:因特殊原因一定要用exec();不可用show();


有这句话,别人基本没办法回了。你把一个死循环放到构造函数里面,还强调必须^_^ 。

http://blog.csdn.net/dbzhang800/archive/2011/04/03/6300416.aspx
离线peterlin82

只看该作者 2楼 发表于: 2011-04-21
非常感谢dbzhang800提供的文章,
那篇文章让小弟清楚了解show()、exec()的差异。

以小弟这次的例子只需改成以下程式码即可:
p2->setModal(true);
p2->show();
快速回复
限100 字节
 
上一个 下一个