• 5163阅读
  • 5回复

一段代码的求助,谁帮帮我 [复制链接]

上一主题 下一主题
离线w32w32
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-06
action_FileOpen控件是在qt design里设计的,mib_browser参照书上的例子多继承,但是在connect时出错
mib_browser.cpp
#include "mib_browser.h"
mib_browser::mib_browser(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    //connect(action_FileOpen, SIGNAL(triggered()),this, SLOT(open()));该行注释去掉,编译不报错,但是运行不出画面
}
void mib_browser::open()
{
        QString fileName = QFileDialog::getOpenFileName(this,
                                   tr("打开MIB文件"), ".",
                                   tr("Spreadsheet files (*.mib)"));
}



mib_browser.h
#ifndef MIB_BROWSER_H
#define MIB_BROWSER_H

#include <QtGui/QMainWindow>
#include "ui_mib_browser.h"
#include <qfiledialog.h>
#include <qmessagebox.h>
class mib_browser : public QMainWindow,public Ui::mib_browserClass
{
    Q_OBJECT

public:
    mib_browser(QWidget *parent = 0);
private slots:
     void open();
private:
    Ui::mib_browserClass ui;
};

#endif // MIB_BROWSER_H
离线w32w32

只看该作者 1楼 发表于: 2009-04-06
发现把Ui.setupUi(this);改成setupUi(this);就好了
这是为什么呢!!!!!!!
离线随想~
只看该作者 2楼 发表于: 2009-04-06
111
引用第1楼w32w32于2009-04-06 16:37发表的  :
发现把Ui.setupUi(this);改成setupUi(this);就好了
这是为什么呢!!!!!!!

怎么可能呢? setupUi()明明是Ui 类的成员函数哇!!怎么回事哦。
离线feelow
只看该作者 3楼 发表于: 2009-04-06
因为你的 mib_browser  直接派生与mib_browserClass
然后代码
connect(action_FileOpen, SIGNAL(triggered()),this, SLOT(open()));
是把 的mib_browser  的成员action_FileOpen连接到slot上
所以 mib_browser必须先自己stupUi
代码
Ui::mib_browserClass ui; 没用
离线w32w32

只看该作者 4楼 发表于: 2009-04-06
谢谢3楼,该贴可以结了
离线foxyz

只看该作者 5楼 发表于: 2009-04-07
楼主真有才,多继承了还能组合着用!
快速回复
限100 字节
 
上一个 下一个