• 4497阅读
  • 9回复

Qt多窗口问题 [复制链接]

上一主题 下一主题
离线xiongyu
 

只看楼主 倒序阅读 楼主  发表于: 2009-08-15
             我写了两个类..

           form1  form2


          然后再main函数里面

          
  1. int main(int argc,char *argv[])
  2. {
  3.     QApplication app(argc,argv);
  4.     form1 form1;
  5.     form2 form2;
  6.     form2.show();
  7.     form1.show();
  8.     return app.exec();
  9. }



这样会显示两个窗口,但想在form1里面加个按钮,点击一下form2 就hide

但好像两个彼此独立,搞不了的?
为自己而已努力吧... 我的博客 http://xycode.org
离线jorneyr

只看该作者 1楼 发表于: 2009-08-16
signal, slot给忘了?
离线rqzrqh

只看该作者 2楼 发表于: 2009-08-16
把 form1内的按钮点击信号转化为form1的信号才可以被form2接收
离线xiongyu

只看该作者 3楼 发表于: 2009-08-16
忘是没忘,关键是说找不到form2
为自己而已努力吧... 我的博客 http://xycode.org
离线gotomall
只看该作者 4楼 发表于: 2009-08-16
解决此问题的根本问题是学习单例模式的应用!2个窗体你解决了,3个,4个呢?学习的话,请参看qt 例子browser那个。
离线xiongyu

只看该作者 5楼 发表于: 2009-08-16
我只是想知道,怎么show出第二个窗口..  是两个类来的,每个类绘制一个form窗口Re:Qt多窗口问题
引用第4楼gotomall于2009-08-16 12:44发表的  :
解决此问题的根本问题是学习单例模式的应用!2个窗体你解决了,3个,4个呢?学习的话,请参看qt 例子browser那个。

我只是想知道,怎么show出第二个窗口..  是两个类来的,每个类绘制一个form窗口

难道 3个 4个的原理又是另外一个了?

学会一个,其他的就好办啦,那个browser的例子也太大了吧。。

能不能直接给点例子呢。。。。我知道你懂,但你用这些晦涩的语言,怎么教别人,这样就失去了别人提问的意义了
为自己而已努力吧... 我的博客 http://xycode.org
离线gotomall
只看该作者 6楼 发表于: 2009-08-16
Re:
XApplication 类单例instance()

main先运行XApplication, 执行一个函数,创建form1,form2

form1,form2 什么状态都可以设置

然后你的form2调用form1隐藏,直接instance()->hideForm1()

就ok了。

再多的窗口都是一个道理
离线jorneyr

只看该作者 7楼 发表于: 2009-08-16
给你个方案,写一个管理的中间类,把你的这些界面的对象的指针都给这个中间类。信号糟连接在这个中间类中去处理。这样, 这些界面类之间就是独立的, 互不影响,他们只管发射信号与调用糟函数。
离线jorneyr

只看该作者 8楼 发表于: 2009-08-16
Form1 *form1 = new Form1(); // signals: setOtherFormVisible(bool visible); // 点击按钮时发射
Form2 * form2 = new Form2();

//-------------------------------------------------------------------------//
FormManager manager;
manager.setForm1(form1);
manager.setForm2(form2);

connect(form1, SIGNAL(setOtherFormVisible(bool), form2, SLOT(setVisible(boo));
离线xiongyu

只看该作者 9楼 发表于: 2009-08-16
非常感谢楼上的所有人。。

我明白了。。谢谢啦
为自己而已努力吧... 我的博客 http://xycode.org
快速回复
限100 字节
 
上一个 下一个