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

打开文件对话框打开一个文件路径,怎么对它进行调用

4
回复
6849
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2018-4-23 14:53:01 显示全部楼层 |阅读模式
1Qter豆
#include "data_processing_interface.h"
#include <QLabel>
#include <QImage>
#include <QFileDialog>
#include <iostream>
#include <CA1.h>
using namespace std;
Data_processing_interface:ata_processing_interface(QWidget *parent)
        : QMainWindow(parent)
{
        ui.setupUi(this);
        if (!PCA1Initialize())  //必须写  
        {
                cout << "初始化失败!" << endl;  
        }
        connect(ui.action, &QAction::triggered, this,
                &Data_processing_interface:pen);
        connect(ui.pushButton, &QPushButton::clicked,this,
                &Data_processing_interface:pen);
        /*connect(ui.action_11, &QAction::triggered,this,  &Data_processing_interface::send);
        connect(this, &Data_processing_interface::sendpath_signal, this,&Data_processing_interface::pca);*/
        //connect(ui.pushButton_2, &QPushButton::clicked,this,
                //&Data_processing_interface::pca);
}
void Data_processing_interface:pen()
{
        path = QFileDialog::getOpenFileName(this, "open",
                "../",
                "Image(*.jpg *.bmp)::"
                "Source(*,txt *.tif)::"
                "all(*.*)");
        string p1 = path.toStdString();
        p = const_cast<char *>(p1.data());
        cout << p;
        QLabel *label = new QLabel;
        label->setText(path);
        ui.scrollArea->setWidget(label);
        ui.scrollArea->setStyleSheet("QLabel{color:balck;"
                "background-color:white;}");
        connect(ui.action_11, &QAction::triggered, this, &Data_processing_interface::send);
        connect(this, &Data_processing_interface::sendpath_signal, this, &Data_processing_interface::pca);
}
void Data_processing_interface::pca(const char * p1)
{
        const char *filename = p1;
        cout <<"1"<< filename;

        /*mwArray DATA2(621, 1000, mxDOUBLE_CLASS);
        mwArray DATA3(621, 1000, mxDOUBLE_CLASS);
        mwArray coeef(621, 1000, mxDOUBLE_CLASS);
        mwArray Cumexplained(621, 1000, mxDOUBLE_CLASS);
        PCA1(1, DATA2, DATA3, coeef, Cumexplained, filename);*/

}
void Data_processing_interface::send()
{
        emit  sendpath_signal(p);
        cout << p;
}


回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2018-4-23 16:19:41 显示全部楼层
问得我是一脸懵,文件路径什么怎么调用啊,打开文件啊,写啊、读啊、删啊~
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2018-4-23 16:26:55 显示全部楼层
Since 发表于 2018-4-23 16:19
问得我是一脸懵,文件路径什么怎么调用啊,打开文件啊,写啊、读啊、删啊~ ...

调用文件的路径,我是要通过文件对话框打开一个文件路径,然后在其他槽函数里去这个文件路径进行调用
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2018-4-24 08:35:56 显示全部楼层
你想在其他的函数里面调用这个变量,你想想什么变量的作用域是在整个类里面都可以访问呀,全局变量、成员变量就可以做到,你的代码里面生成了一个局部变量,出了函数就再也找不到了,所以你要么定义一个全局变量,要么定义一个成员变量来储存这个路径~
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2018-4-24 20:35:01 显示全部楼层
本帖最后由 dcl 于 2018-4-24 20:38 编辑

这是我的程序#include "data_processing_interface.h"#include <QLabel>
#include <QFileDialog>
#include <iostream>
#include <CA1.h>
using namespace std;
QString Data_processing_interface::path = "1ppppp";
char * Data_processing_interface::p = "2ppppp";

Data_processing_interface:ata_processing_interface(QWidget *parent)
        : QMainWindow(parent)
{
        ui.setupUi(this);
        if (!PCA1Initialize())  //必须写  
        {
                cout << "初始化失败!" << endl;  
        }
        //p = "C:/Users/Administrator/Desktop/data/data/pca_dataset1.csv";
        cout << p << endl;
        connect(ui.action, &QAction::triggered, this, &Data_processing_interface:pen);
        connect(ui.pushButton, &QPushButton::clicked,this, &Data_processing_interface:pen);
        connect(ui.action_11, &QAction::triggered,this,  &Data_processing_interface::pca);
        //connect(this, &Data_processing_interface::sendpath_signal, this,&Data_processing_interface::pca);
        connect(ui.pushButton_2, &QPushButton::clicked,this, &Data_processing_interface::pca);
}
void Data_processing_interface:pen()
{
        path = QFileDialog::getOpenFileName(this, "openfile",
                "../",
                "Image(*.jpg *.bmp)::"
                "Source(*,txt *.tif)::"
                "all(*.*)");
        string p1 = path.toStdString();
        p = const_cast<char *>(p1.data());
        cout << "1" << p << endl;
        QLabel *label = new QLabel;
        label->setText(path);
        ui.scrollArea->setWidget(label);
        ui.scrollArea->setStyleSheet("QLabel{color:balck;"
                "background-color:white;}");
}
void Data_processing_interface::pca()
{
       
        const char *filename = p;
        cout <<"3"<< filename;

        /*mwArray DATA2(621, 1000, mxDOUBLE_CLASS);
        mwArray DATA3(621, 1000, mxDOUBLE_CLASS);
        mwArray coeef(621, 1000, mxDOUBLE_CLASS);
        mwArray Cumexplained(621, 1000, mxDOUBLE_CLASS);
        PCA1(1, DATA2, DATA3, coeef, Cumexplained, filename);*/

}
这是结果为什么我按打开显示的是这个路径,按主成分分析打印出来的路径是这样啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

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