日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]假設(shè)從主窗口中打開一個子窗口,在子窗口另存圖片,如下圖所示。代碼一般是這樣的。?QString?dirPath?=?QFileDialog::getSaveFileName(NULL,?QString

假設(shè)從主窗口中打開一個子窗口,在子窗口另存圖片,如下圖所示。


代碼一般是這樣的。

?QString?dirPath?=?QFileDialog::getSaveFileName(NULL,?QStringLiteral("ImageSaveAs"),?":/image/good.png",?QString(tr("Images?(*.png?*.bmp?*.jpg??*.gif?*.jpeg)")),
???????????????????????????????????????????????????Q_NULLPTR,?QFileDialog::ShowDirsOnly?|?QFileDialog::DontResolveSymlinks);

//如果選擇的路徑無效,則不保存
if?(!dirPath.isEmpty())
{
????QFileInfo?fileInfo(dirPath);
????if?(fileInfo.exists())
????????QFile::remove(dirPath);
????QFile::copy(":/image/good.png",?dirPath);
}

這樣雖然可以正常保存圖片,但是存在一個奇怪的現(xiàn)象:直接點擊主窗口的標(biāo)題,無反應(yīng);如果在任務(wù)欄中點擊主窗口,主窗口卻可以切換到最前端,但是上面打按鈕和編輯框無法獲取焦點。


用過QQ或者微信等軟件,會發(fā)現(xiàn)他們在圖片另存時,是可以正常繼續(xù)聊天的。

后來查了Qt助手,答案揭曉O(shè)n Windows the dialog will spin a blocking modal event loop that will not dispatch any QTimers。

因此要達(dá)到QQ或者微信的效果,就不能用getSaveFileName這個靜態(tài)方法。改良后的代碼如下。

QFileDialog?*m_fd;
m_fd?=?new?QFileDialog(this);
connect(m_fd,?SIGNAL(accepted()),?this,?SLOT(slotAccepted()));
m_fd->setWindowTitle(QStringLiteral("ImageSaveAs"));//設(shè)置文件保存對話框的標(biāo)題
m_fd->setAcceptMode(QFileDialog::AcceptSave);//設(shè)置文件對話框為保存模式
m_fd->setOptions(QFileDialog::ShowDirsOnly?|?QFileDialog::DontResolveSymlinks);//只顯示文件夾

m_fd->setDirectory(":/image/good.png");//設(shè)置保存對話框的當(dāng)前文件夾
m_fd->selectFile(":/image/good.png");//設(shè)置默認(rèn)的文件名
QStringList?nameFilters;
nameFilters?<<?"Images?(*.png?*.bmp?*.jpg??*.gif?*.jpeg)";
m_fd->setNameFilters(nameFilters);//設(shè)置文件類型過濾器
m_fd->open();
void?SaveAsDialog::slotAccepted()
{
????QString?dirPath?=?"";
????dirPath?=?m_fd->selectedFiles()[0];
????//如果選擇的路徑無效,則不保存
????if?(!dirPath.isEmpty())
????{
????????QFileInfo?fileInfo(dirPath);
????????if?(fileInfo.exists())
????????????QFile::remove(dirPath);
????????QFile::copy(":/image/good.png",?dirPath);
????}
}








本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉