• 13108阅读
  • 8回复

QT4.5.2如何按下一个按钮,弹出一个新窗口,新窗口已有.ui文件 [复制链接]

上一主题 下一主题
离线cxin6
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-02
各位大大,我在编程中发现,我可以在button的slot中去新建一个dialog,可以设置dialog属性。
  QDialog dialog(this);
    dialog.setMinimumSize(200,80);
    dialog.exec();

但是我由于新窗口的界面设计比较复杂,所以用可视化工具生成了.ui文件,那么我应该在button的slot中如何调用这个已有有.ui的新窗口呢

谢谢
离线cxin6
只看该作者 1楼 发表于: 2009-09-02
setting.ui其实就是一个空的dialog

setting.cpp:
---------------------------------------
#include "setting.h"
SetDialog::SetDialog(QWidget *parent)
    : QDialog(parent), uis(new Uis::SetDialog)
{
uis->setupUi(this);
}
SetDialog::~SetDialog()
{
    delete uis;
}
----------------------------------------

setting.h
----------------------------------------
#include "ui_setting.h"
#include <QtGui/QMainWindow>
namespace Uis
{
    class SetDialog;
}

class SetDialog : public QDialog
{
    Q_OBJECT

public:
    SetDialog(QWidget *parent = 0);
    ~SetDialog();

private:
    Uis::SetDialog *uis;
};
---------------------------------------
离线cxin6
只看该作者 2楼 发表于: 2009-09-02
错误提示

setting.cpp:3: error: invalid use of undefined type `struct Uis::SetDialog'
setting.h:7: error: forward declaration of `struct Uis::SetDialog'
setting.cpp:5: error: invalid use of undefined type `struct Uis::SetDialog'
setting.h:7: error: forward declaration of `struct Uis::SetDialog'
离线cxin6
只看该作者 3楼 发表于: 2009-09-02
问题解决了一半
我之前的想法是多了一个.ui,那么我就要有对应的cpp和h,所以无论如何也编译不过。
后来我在button的slot里加上这些就可以了,没有新加cpp和h,但是新的ui里面的功能实现函数应该在那里加呢
  QDialog SettingDialog(this);
    Ui_Setting ui;
    ui.setupUi(&SettingDialog);
    SettingDialog.exec();
离线cxin6
只看该作者 4楼 发表于: 2009-09-02
难道界面功能实现函数加到.ui生成的ui_settings.h中去?
离线cxin6
只看该作者 5楼 发表于: 2009-09-02
刚试过,尝试在新窗口的界面中添加按钮,想关联slot的时候,说找不到对应的cpp和h文件,看来我之前的做法只能说把这个界面调用起来了,并不能实现界面上的操作等等。
离线dbzhang800

只看该作者 6楼 发表于: 2009-09-02
引用第3楼cxin6于2009-09-02 16:00发表的  :
我之前的想法是多了一个.ui,那么我就要有对应的cpp和h,
.......


这个想法应该没问题吧
离线shiroki

只看该作者 7楼 发表于: 2009-09-02
文档里有你要的答案
http://www.cuteqt.com/blog/?p=65
如果要修改ui文件的行为, 最好是从ui的类生成一个widget的子类, 后面想怎么操作就由你了
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线cxin6
只看该作者 8楼 发表于: 2009-09-02
谢谢,问题已解决
快速回复
限100 字节
 
上一个 下一个