问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Qt 如何在打开的文件夹中鼠标选中某文件

发布网友 发布时间:2022-04-24 02:14

我来回答

1个回答

热心网友 时间:2023-10-21 08:36

是在打开的文件夹中自动选中某文件吧?不需要用鼠标。

试试看这一段:


bool OpenFolderAndSelectFile(const char *filePath)
{
#ifdef Q_OS_WIN
    
    LPITEMIDLIST pidl;
    LPCITEMIDLIST cpidl;  
    LPSHELLFOLDER pDesktopFolder;  
    ULONG chEaten;  
    HRESULT hr;  
    WCHAR wfilePath[MAX_PATH+1] = { 0 };  
  
    ::CoInitialize( NULL );  
  
    if ( SUCCEEDED( SHGetDesktopFolder( &pDesktopFolder ) ) )  
    {  
        // IShellFolder::ParseDisplayName要传入宽字节  
        LPWSTR lpWStr = NULL;  
//#ifdef _UNICODE  
//        _tcscpy( wfilePath, strFilePath );  
//        lpWStr = wfilePath;  
//#else  
        MultiByteToWideChar( CP_ACP, 0, (LPCSTR)filePath, -1, wfilePath, MAX_PATH );   
        lpWStr = wfilePath;  
//#endif  
  
        hr = pDesktopFolder->ParseDisplayName( NULL, 0, lpWStr, &chEaten, &pidl, NULL );  
        if ( FAILED( hr ) )  
        {  
            pDesktopFolder->Release();  
            ::CoUninitialize();  
            return FALSE;  
        }  
  
        cpidl = pidl;  
  
        // SHOpenFolderAndSelectItems是非公开的API函数,需要从shell32.dll获取  
        // 该函数只有XP及以上的系统才支持,Win2000和98是不支持的,考虑到Win2000  
        // 和98已经基本不用了,所以就不考虑了,如果后面要支持上述老的系统,则要  
                // 添加额外的处理代码  
        HMODULE hShell32DLL = ::LoadLibraryA("shell32.dll");  
        //ASSERT( hShell32DLL != NULL );  
        if( hShell32DLL != NULL )  
        {  
            typedef HRESULT (WINAPI *pSelFun)( LPCITEMIDLIST pidlFolder, UINT cidl, LPCITEMIDLIST  *apidl, DWORD dwFlags );  
            pSelFun pFun = (pSelFun)::GetProcAddress( hShell32DLL, "SHOpenFolderAndSelectItems" );  
            //ASSERT( pFun != NULL );     
            if( pFun != NULL )  
            {  
                hr = pFun( cpidl, 0, NULL, 0 ); // 第二个参数cidl置为0,表示是选中文件  
                if ( FAILED( hr ) )  
                {  
                    ::FreeLibrary( hShell32DLL );  
                    pDesktopFolder->Release();  
                    ::CoUninitialize();  
                    return FALSE;  
                }  
            }  
  
            ::FreeLibrary( hShell32DLL );  
        }  
        else  
        {  
            pDesktopFolder->Release();  
            ::CoUninitialize();  
            return FALSE;  
        }  
          
        // 释放pDesktopFolder  
        pDesktopFolder->Release();  
    }  
    else  
    {  
        ::CoUninitialize();  
        return FALSE;  
    }  
  
    ::CoUninitialize();  
    return TRUE;

#else
    QString pathIn(filePath);
    QStringList scriptArgs;
    scriptArgs << QLatin1String("-e") << QString::fromLatin1("tell application \"Finder\" to reveal POSIX file \"%1\"").arg(pathIn.replace('\\', '/'));
    QProcess::execute(QLatin1String("/usr/bin/osascript"), scriptArgs);
    scriptArgs.clear();
    scriptArgs << QLatin1String("-e") << QLatin1String("tell application \"Finder\" to activate");
    QProcess::execute("/usr/bin/osascript", scriptArgs);
    return true;
#endif
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
离职几个月公司发短信说我离职生效叫我回去补办离职交接手续怎么 开除员工不办手续违法吗 辞退员工没有办手续违法吗 苹果13/6.1录制两个人脸,后面换锁屏密码认证还有什么提醒,或者是两个人... 很规律很威严的词语是什么 我老了又无能 想有个爱我一辈子的 到今没 就一个人 把爱放心里 用数字... 日语N2 20天复习够吗 为什么泥工先于木工 泥工做好隔多久做木工 从泥工做好到做木工,需要等待多久? 水泥操作人员作业流程是怎样的? 嗓子失声了,怎么办啊?多久能好啊? 求QT 打开EXE和TXT文件的槽函数 嗓子要是喊哑了,几天会好啊? 用Qt如何界面实现文件读写功能 QT读写WORD文档,该怎么处理 真高音唱多了喉咙沙哑了,要多久才好 QT excel创建的.xlsx文件打不开 QT里面用treeview显示的目录和文件选中后怎么打开 在变声期感冒了然后嗓子哑了,唱了几首歌哑的更厉害了,连说话都不行,能好吗,要几天? qt 设置一个按钮点击后开启另一个当前程序 Qt怎么双击自定义文件后使用自编程序打开 如何在Qt资源文件中包含exe等各种类型文件 嗓子哑了最快可以几天好 qt编程文件打开哪个可以把程序完整打开 唱ktv.嗓子有点儿唱哑了。要几天可以恢复? qt 怎样在界面下打开文件 唱歌将嗓子唱哑多长时间能好 QT按钮如何打开本地视频 pyqt5按钮打开文件 Qt设计界面,怎样在该界面实现打开PPT文件并播放 太阳能灯怎样设置人体感应? 太阳能庭院灯LP66使用说明书 .apk文件夹如何安装! 怎样把太阳能路灯改成人体感应的? 太阳能庭院灯怎么安装 需要注意什么?谁能说下 小天才电话手表第二 如何 下载应用? 太阳能便携感应灯,哪里需要吸哪里 太阳能感应灯如何让它晚上常亮? 太阳能庭院灯如何安装? 太阳能人体感应灯原理是什么,怎么感应人的存在的?谁来解释下 太阳能楼道灯安装第一天亮第二天要把负载线重新插才亮是什么原因? 太阳能路灯蓄电池的正确安装方法 太阳能投光灯怎么配置比较好?哪个牌子好一点? 户外太阳能感应灯到底值不值得买? 太阳能感应灯可以放在屋里吗? 太阳能感应吸顶灯,太阳能板装室外,灯具装室内的 苹果、安卓app商标保护 如何用手机定位车的位置? 干洗店是怎么洗羽绒服的?羽绒服不能干洗啊? 店家是怎么干洗羽绒服的?