中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

徐州中小企業(yè)網(wǎng)站制作中國局勢最新消息今天

徐州中小企業(yè)網(wǎng)站制作,中國局勢最新消息今天,php租車網(wǎng)站,網(wǎng)站建設 的公司Qt中獲取系統(tǒng)圖標、類型是通過QFileIconProvider來實現(xiàn)的,具體如下: 一、Qt獲取系統(tǒng)文件圖標1、獲取文件夾圖標QFileIconProvider icon_provider;QIcon icon icon_provider.icon(QFileIconProvider::Folder);2、獲取指定文件圖標QFileInfo file_info(n…

Qt中獲取系統(tǒng)圖標、類型是通過QFileIconProvider來實現(xiàn)的,具體如下:

一、Qt獲取系統(tǒng)文件圖標1、獲取文件夾圖標QFileIconProvider icon_provider;QIcon icon = icon_provider.icon(QFileIconProvider::Folder);2、獲取指定文件圖標QFileInfo file_info(name);
QFileIconProvider icon_provider;
QIcon icon = icon_provider.icon(file_info);二、Windows編程中獲取系統(tǒng)圖標、類型:QIcon Setting::getFileIcon(QString file_name)
{QIcon file_icon = QIcon(":/icon/file");if(!file_name.isEmpty()){//獲取后綴std::string str = "file";int index = file_name.lastIndexOf(".");if(index >= 0){QString suffix = file_name.mid(index); //將QString轉(zhuǎn)化為std::stringstr = suffix.toUtf8().constData(); //std::string((const char *)path.toLocal8Bit())  path.toLatin1().data();}LPCSTR name = str.c_str();SHFILEINFOA info;if(SHGetFileInfoA(name,FILE_ATTRIBUTE_NORMAL,&info,sizeof(info),SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_USEFILEATTRIBUTES)){HICON icon = info.hIcon;file_icon = QIcon(QPixmap::fromWinHICON(icon));}}return file_icon;
}QString Setting::getFileType(QString file_name)
{QString file_type = QString("file");if(!file_name.isEmpty()){//獲取后綴std::string str = "file";int index = file_name.lastIndexOf(".");if(index >= 0){QString suffix = file_name.mid(index); //將QString轉(zhuǎn)化為std::stringstr = suffix.toUtf8().constData();}LPCSTR name = str.c_str();SHFILEINFOA info;if(SHGetFileInfoA(name,FILE_ATTRIBUTE_NORMAL,&info,sizeof(info),SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES)){std::string type = info.szTypeName;file_type = type.c_str();}}return file_type;
}QIcon Setting::getFolderIcon()
{QIcon folder_icon = QIcon(":/icon/folder");//將QString轉(zhuǎn)化為std::stringstd::string str = "folder";LPCSTR name = str.c_str();SHFILEINFOA info;if(SHGetFileInfoA(name,FILE_ATTRIBUTE_DIRECTORY,&info,sizeof(info),SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_USEFILEATTRIBUTES)){HICON h_icon = info.hIcon;folder_icon = QIcon(QPixmap::fromWinHICON(h_icon)); }return folder_icon;
}QString Setting::getFolderType()
{QString folder_type = QString("folder");std::string str = "folder";LPCSTR name = str.c_str();SHFILEINFOA info;if(SHGetFileInfoA(name,FILE_ATTRIBUTE_DIRECTORY,&info,sizeof(info),SHGFI_TYPENAME | SHGFI_USEFILEATTRIBUTES)){std::string type = info.szTypeName;folder_type = type.c_str();}return folder_type;
}

兩種方式最大的區(qū)別是什么呢?參考:filesystems - Qt 4.8 - QFileIconProvider, Getting icon for non-existent file (based on extension) - Stack Overflow?諸如所言,Qt所提供的獲取圖標的方法是本地已存在的文件,如果要通過擴展名來獲取圖標則需要自己來虛擬構造本地文件,而在數(shù)據(jù)量較大的情況下往往會影響性能。這(通過擴展名獲取圖標、類型)可以通過Windows API來實現(xiàn),即方法二。

Qt5開始QPixmap::fromWinHICON(HICON)已經(jīng)消失得無影無蹤,且獲取圖標、后綴的方法仍針對本地已存在的文件,那么,只能另尋出路,此節(jié)講述如何通過擴展名來創(chuàng)建臨時文件,并獲取對應的圖標、類型。

步驟:

通過擴展名extension(.***)構造臨時文件QTemporaryFile

通過QFileIconProvider獲取對應的圖標、類型

刪除臨時文件

獲取圖標QIcon FileIcon::fileExtensionIcon(const QString & extension) const 
{
QFileIconProvider icon_provider;
QIcon icon;
QTemporaryFile tmp_file(QDir::tempPath() + QDir::separator() +
QCoreApplication::applicationName() + "_XXXXXX" + extension);
tmp_file.setAutoRemove(false);if(tmp_file.open()) 
{
QString file_name = tmp_file.fileName();
tmp_file.write(QByteArray());
tmp_file.close();icon = icon_provider.icon(QFileInfo(file_name));
tmp_file.remove();
} 
else 
{
qCritical()<<QString("failed to write temporary file %1") .arg(tmp_file.fileName());
}return icon;
}
獲取類型QString FileIcon::fileExtensionType(const QString & extension) const 
{
QFileIconProvider icon_provider;
QString type;
QTemporaryFile tmp_file(QDir::tempPath() + QDir::separator() +
QCoreApplication::applicationName() + "_XXXXXX" + extension);
tmp_file.setAutoRemove(false);if(tmp_file.open()) 
{
QString file_name = tmp_file.fileName();
tmp_file.write(QByteArray());
tmp_file.close();type = icon_provider.type(QFileInfo(file_name));tmp_file.remove();
} 
else 
{
qCritical()<<QString("failed to write temporary file %1") .arg(tmp_file.fileName());
}return type; 
}

?

?

http://www.risenshineclean.com/news/2902.html

相關文章:

  • 馬鞍山網(wǎng)站建設 明達百度收錄網(wǎng)站鏈接入口
  • 自己做的網(wǎng)站算廣告嗎公司網(wǎng)站域名續(xù)費一年多少錢
  • 做美工哪個網(wǎng)站靠譜開封網(wǎng)站優(yōu)化公司
  • 網(wǎng)站網(wǎng)頁優(yōu)化怎么做上海推廣系統(tǒng)
  • 2018年做網(wǎng)站賺錢嗎百度一下首頁網(wǎng)頁百度
  • 南陽市網(wǎng)站建設今天特大新聞最新消息
  • 郴州網(wǎng)站建設服務騰訊企點注冊
  • 企業(yè)郵箱怎么找seo實訓報告
  • 做網(wǎng)站時分類標題和分類描述搜索引擎排名谷歌
  • 網(wǎng)站怎樣做鏈接微信怎么推廣
  • 個人怎么做課程網(wǎng)站seo權重是什么意思
  • 合肥做網(wǎng)站域名的公司怎么制作小程序
  • 鄂州手機網(wǎng)站建設百度收錄軟件
  • wordpress 寫php頁面跳轉(zhuǎn)seo代碼優(yōu)化包括哪些
  • 廣州做網(wǎng)站 漢獅網(wǎng)絡抖音seo源碼搭建
  • 肇慶企業(yè)網(wǎng)站關鍵詞優(yōu)化教程哪里有網(wǎng)頁設計公司
  • 建工網(wǎng)校官網(wǎng)app百度推廣優(yōu)化師培訓
  • 網(wǎng)站制作的重要流程圖百度排行榜前十名
  • 網(wǎng)站首頁優(yōu)化營銷型網(wǎng)站外包
  • 哈爾濱 房產(chǎn)網(wǎng)站建設成都seo專家
  • 軟件公司 網(wǎng)站模板網(wǎng)站外鏈平臺
  • 自己黑自己做的網(wǎng)站找相似圖片 識別
  • 石家莊網(wǎng)站建設找哪家百度推廣關鍵詞規(guī)劃師
  • 提供網(wǎng)站制作公司地址常用的關鍵詞挖掘工具
  • 舟山做網(wǎng)站seo關鍵詞排名優(yōu)化品牌
  • 網(wǎng)站 建設 標準方案網(wǎng)站平臺都有哪些
  • 網(wǎng)站橫幅js代碼如何策劃一個營銷方案
  • 做網(wǎng)站群發(fā)外鏈平臺
  • 濟南專業(yè)做網(wǎng)站的公司哪家好信息流優(yōu)化師證書
  • 怎么用flash做網(wǎng)站網(wǎng)絡營銷手段有哪些方式