• 8310阅读
  • 3回复

大家帮忙看一下怎么改 [复制链接]

上一主题 下一主题
离线alina
 
只看楼主 倒序阅读 楼主  发表于: 2007-05-18
— 本帖被 XChinux 执行加亮操作(2008-07-19) —
error C2664: “QFileDialog::getOpenFileName”: 不能将参数1 从“const QString::Null”转换为“QWidget *”
以下程序运行时总出现上述问题
form.cpp
#include "form.h"
#include "QFileDialog.h"
form::form(QWidget *parent, Qt::WFlags flags)
    : QWidget(parent, flags)
{
    ui.setupUi(this);
}

form::~form()
{

}


void form::on_pushButton_clicked()
{
QString filename=QFileDialog::getOpenFileName( QString::null, QString::null, this );

}



form.h
#ifndef FORM_H
#define FORM_H

#include <QtGui/QWidget>
#include "ui_form.h"


class form : public QWidget
{
    Q_OBJECT

public:
    form(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~form();
   

private:
    Ui::formClass ui;

private slots:
    void on_pushButton_clicked();
};

#endif // FORM_H

main.cpp
#include <QtGui/QApplication>
#include "form.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    form w;
    w.show();
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
    return a.exec();
}

离线htyoung

只看该作者 1楼 发表于: 2007-05-19
你写的代码是Qt4 之前的,但是用的库是QT4的
因为在qt4中 定义 第一个参数是QWidget * parent 。所以出了错,请有空先看看 help。

Qt4 定义
QString getOpenFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )
***
QT5
***
离线alina
只看该作者 2楼 发表于: 2007-05-19
谢谢,我去看一下
离线alina
只看该作者 3楼 发表于: 2007-05-19
奇怪,按照以上方法改过以后编译出现以下错误:


----- 已启动生成: 项目: cssliulan, 配置: Debug Win32 ------
正在编译...
form.cpp
d:\qt\4.1.0\include\qtcore\../../src/corelib/io/qfile.h(33) : error C2144: 语法错误 : “int”的前面应有“;”
c:\documents and settings\administrator.c053696591d2477\my documents\visual studio 2005\projects\test\cssliulan\cssliulan\form.h(9) : error C2143: 语法错误 : 缺少“;”(在“内联函数头”的前面)
d:\qt\4.1.0\include\qtcore\../../src/corelib/io/qfile.h(33) : error C2377: “QtCoreModule”: 重定义;typedef 不能由任何其他符号重载
        d:\qt\4.1.0\include\qtcore\../../src/corelib/global/qnamespace.h(27) : 参见“QtCoreModule”的声明
d:\qt\4.1.0\include\qtcore\../../src/corelib/io/qfileinfo.h(28) : error C2370: “QtCoreModule”: 重定义;不同的存储类
        d:\qt\4.1.0\include\qtcore\../../src/corelib/io/qfile.h(33) : 参见“QtCoreModule”的声明
d:\qt\4.1.0\include\qtcore\../../src/corelib/io/qdir.h(29) : error C2370: “QtCoreModule”: 重定义;不同的存储类
        d:\qt\4.1.0\include\qtcore\../../src/corelib/io/qfile.h(33) : 参见“QtCoreModule”的声明
生成日志保存在“file://c:\Documents and Settings\Administrator.C053696591D2477\My Documents\Visual Studio 2005\Projects\test\cssliulan\cssliulan\Debug\BuildLog.htm”
cssliulan - 5 个错误,0 个警告
快速回复
限100 字节
 
上一个 下一个