找回密码
 立即注册
收起左侧

请问怎么实现窗口的切换。

6
回复
8430
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2013-7-6 22:08:13 显示全部楼层 |阅读模式
1Qter豆
新手刚入门,求大神指导。
我编写一个这样的,先点击 “open”按钮的时候,打开一个新的窗口。
这个窗口是setLayout(mainLayout)实现显示的。然后,我有编写了另外一个Layout ,但是显示不出来。

关联的代码 如下:


问题有点低级,因为才刚刚开始学习Qt,希望大神能够帮忙解决一下。
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

将: QDialog *dialog; 定义到myTest.h文件中; 然后可以在myTest的构造函数里面初始化QDialog *dialog = new QDialog(); 然后在打开按钮那里:dialog->show(); 在关闭按钮那里:dialog->close();
回复

使用道具 举报

累计签到:1571 天
连续签到:1 天
2013-7-6 22:08:14 显示全部楼层
ChickenRun 发表于 2013-7-8 09:08
你好。上面是我编写的一个myTest.cpp。我想实现的功能就是按下open打开一个新的窗口,然后按close可以关 ...

将:
QDialog *dialog;
定义到myTest.h文件中;
然后可以在myTest的构造函数里面初始化QDialog *dialog = new QDialog();

然后在打开按钮那里:dialog->show();

在关闭按钮那里:dialog->close();
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2013-7-7 09:46:08 显示全部楼层
可以用QStackWidget类实现界面的切换
回复

使用道具 举报

累计签到:1571 天
连续签到:1 天
2013-7-7 10:25:00 显示全部楼层
你要实现什么样的效果呢?按下一个open,打开一个新的窗口,就像一个对话框那样的吗?

如果是这样的话,直接在open按钮的槽里面新建QDialog对象,然后显示就可以了。

也可以在主类里面创建一个QDialog的指针,然后在open的槽里面让其显示,在close的槽里面让其关闭即可。
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-7-8 09:06:23 显示全部楼层
yafeilinux 发表于 2013-7-7 10:25
你要实现什么样的效果呢?按下一个open,打开一个新的窗口,就像一个对话框那样的吗?

如果是这样的话,直 ...
  1. #include<QtGui>
  2. #include "mytest.h"

  3. QHBoxLayout *mainLayout = new QHBoxLayout;

  4. myTest::myTest(QWidget *parent)
  5.         : QDialog(parent)
  6. {
  7.         QWidget *widget = new QWidget(parent);

  8.         label =  new QLabel(tr("Open a window"));

  9.         openButton = new QPushButton(tr("open"));
  10.         closeButton = new QPushButton(tr("close"));

  11.         connect(openButton,SIGNAL(clicked()),this,SLOT(openclicked()));
  12.         connect(closeButton,SIGNAL(clicked()),this,SLOT(close()));

  13.         QVBoxLayout *rightLayout = new QVBoxLayout;
  14.         rightLayout->addWidget(openButton);
  15.         rightLayout->addWidget(closeButton);

  16.        
  17.         mainLayout->addWidget(label);
  18.         mainLayout->addLayout(rightLayout);

  19.         setLayout(mainLayout);
  20.         setWindowTitle(tr("Use Open"));
  21.         setFixedHeight(sizeHint().height());
  22.           
  23. }

  24. void myTest::openClicked()
  25. {
  26.        
  27.         QDialog *dialog = new QDialog();
  28.         dialog->setWindowTitle(tr("a new window"));
  29.         dialog->show();
  30. }
复制代码
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-7-8 09:08:03 显示全部楼层
yafeilinux 发表于 2013-7-7 10:25
你要实现什么样的效果呢?按下一个open,打开一个新的窗口,就像一个对话框那样的吗?

如果是这样的话,直 ...

你好。上面是我编写的一个myTest.cpp。我想实现的功能就是按下open打开一个新的窗口,然后按close可以关闭就好了。。求指导一下呀。
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2013-7-10 14:30:12 显示全部楼层
yafeilinux 发表于 2013-7-9 09:13
将:
QDialog *dialog;
定义到myTest.h文件中;

谢谢指导~~问题解决啦~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了