QT 打开文件选择窗口

1.

#define SYSTEM_DIR_LB_FILE                0x0B000000       //录波目录

QString filepath_dat=QFileDialog::getOpenFileName(this,tr("Open Image"),DirMgr::GetSysDirAllEn_Name(SYSTEM_DIR_LB_FILE), tr("data(*.dat);;all(*.*)"));

2.

XString DirMgr::GetSysDirAllEn_Name(XUINT dir_val) //dir_val = SYSTEM_DIR_LB_FILE
{
if (IS_INIT == XFALSE)
{
init(false);
}


XString strPath=QCoreApplication::applicationDirPath();
XString dir=GetSysDirEn_Name(dir_val);
    XString alldir="";
QStringList splitdir=strPath.split("/");
XINT i=0;
for(i;i<splitdir.count();i++)
{
XCHAR root_name[100];
memcpy(root_name,(XCHAR*)P_SYSTEM_DIR_EN_STR[0],SYSTEM_DIR_NSA3000T_STR_MAXCOUNT);
if(splitdir.at(i)==QStringEx::fromLocal8Bit(root_name))
{
break;
}
}
for(XINT j=0;j<i;j++)
alldir+=splitdir.at(j)+"/";
alldir+=dir;
return alldir;
}

3

XString DirMgr::GetSysDirEn_Name(XUINT dir_val)
{
if (IS_INIT == XFALSE)
{
init(false);
}


    XString en_name=getdir(dir_val);
    if(dir_val==SYSTEM_DIR_BIN||dir_val==SYSTEM_DIR_APP||dir_val==SYSTEM_DIR_COM||dir_val==SYSTEM_DIR_L_ZIP)
    {
#ifdef CUR_RUN_SYS_WINDOWS_VS2008
en_name=en_name+"/win";
#endif
#ifdef CUR_RUN_SYS_LINUX_QT
en_name=en_name+"/lnx";
#endif
    }
    else
{
#ifdef CUR_RUN_SYS_WINDOWS_VS2008
en_name=en_name.replace("lnx","win");
#endif
#ifdef CUR_RUN_SYS_LINUX_QT
en_name=en_name.replace("win","lnx");
#endif
}
    QStringList enname=en_name.split("/");
    en_name="";
    XINT i=0;
    for(i;i<enname.count();i++)
    {
XCHAR root_name[100];
memcpy(root_name,(XCHAR*)P_SYSTEM_DIR_EN_STR[0],SYSTEM_DIR_NSA3000T_STR_MAXCOUNT);
        if(enname.at(i)==QStringEx::fromLocal8Bit(root_name))
            break;
    }
    for(int j=i;j<enname.count();j++)
        en_name=en_name+enname.at(j)+"/";
    return en_name;
}

总结:

以上是打开选择窗口直接定位到某个文件夹,如果不需要,第一部直接这样:

QString filepath_dat=QFileDialog::getOpenFileName(this,tr("Open Image"),“ ”, tr("data(*.dat);;all(*.*)"));

即可,打开后可能是我的桌面,可能是我的文档

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值