日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt中的QFileDialog类的几个示范代码

發布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt中的QFileDialog类的几个示范代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From:?http://www.hedabbs.cn/thread-102600-1-1.html

  • void Dialog::setExistingDirectory()
  • {??//選擇一個文件夾;
  • ? ? QFileDialog::Options options = QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly;
  • ? ? if (!native->isChecked())
  • ? ?? ???options |= QFileDialog::DontUseNativeDialog;
  • ? ? QString directory = QFileDialog::getExistingDirectory(this,
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???tr("QFileDialog::getExistingDirectory()"),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???directoryLabel->text(),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???options);
  • ? ? if (!directory.isEmpty())
  • ? ?? ???directoryLabel->setText(directory);
  • }
  • 復制代碼
  • void Dialog::setOpenFileName()
  • {??//打開一個文件;
  • ? ? QFileDialog::Options options;
  • ? ? if (!native->isChecked())
  • ? ?? ???options |= QFileDialog::DontUseNativeDialog;
  • ? ? QString selectedFilter;
  • ? ? QString fileName = QFileDialog::getOpenFileName(this,
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???tr("QFileDialog::getOpenFileName()"),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???openFileNameLabel->text(),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???tr("All Files (*);;Text Files (*.txt)"),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???&selectedFilter,
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???options);
  • ? ? if (!fileName.isEmpty())
  • ? ?? ???openFileNameLabel->setText(fileName);
  • }
  • 復制代碼
  • void Dialog::setOpenFileNames()
  • {??//打開多個文件;
  • ? ? QFileDialog::Options options;
  • ? ? if (!native->isChecked())
  • ? ?? ???options |= QFileDialog::DontUseNativeDialog;
  • ? ? QString selectedFilter;
  • ? ? QStringList files = QFileDialog::getOpenFileNames(
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???this, tr("QFileDialog::getOpenFileNames()"),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???openFilesPath,
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???tr("All Files (*);;Text Files (*.txt)"),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???&selectedFilter,
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???options);
  • ? ? if (files.count()) {
  • ? ?? ???openFilesPath = files[0];
  • ? ?? ???openFileNamesLabel->setText(QString("[%1]").arg(files.join(", ")));
  • ? ? }
  • }
  • 復制代碼
  • void Dialog::setSaveFileName()
  • {??//保存一個文件;
  • ? ? QFileDialog::Options options;
  • ? ? if (!native->isChecked())
  • ? ?? ???options |= QFileDialog::DontUseNativeDialog;
  • ? ? QString selectedFilter;
  • ? ? QString fileName = QFileDialog::getSaveFileName(this,
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???tr("QFileDialog::getSaveFileName()"),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???saveFileNameLabel->text(),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???tr("All Files (*);;Text Files (*.txt)"),
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???&selectedFilter,
  • ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???options);
  • ? ? if (!fileName.isEmpty())
  • ? ?? ???saveFileNameLabel->setText(fileName);
  • }
  • 復制代碼

    ==================================================================================================

    From:?http://feizf.blogbus.com/logs/5112083.html


    資料來源于Qt官方文檔,我總結了其中常用到的部分:

    一.? 最簡單的方法是調用靜態函數來對話框獲取文件:
    ? QString?file = QFileDialog::getOpenFileName(
    ??????????????????? "/home/foxman",
    ??????????????????? "Images (*.png *.xpm *.jpg)",
    ??????????????????? this);
    ?????這斷代碼可以建立一個取文件對話框,選擇后OK將文件路徑返回給file.
    ?????????
    二. 一般的文件對話框的使用
    ? QFileDialog *fd=new QFileDialog(this,"file dlg",TRUE);
    ??? if(fd->exec()==QFileDialog::Accepted) // ok
    ??? {
    ???????QString file=fd->selectedFile();
    ????? qWarning(s);
    ??? }

    ? 1. 幾個設定選項:

    ?? a. 設定顯示模式
    ??? ?fd->setViewMode( QFileDialog::Detail );
    ???? //Detail顯示 詳細的文件日期大小, List為一般情況

    ?? b. 設定過濾器
    ????? fd->setFilter( "Images (*.png *.xpm *.jpg)" );?
    ???? 下面是設定多個過濾器,一定要以;;隔開(兩個分號)
    ???? QString filters="C file(*.c *.cpp *.h);;pic(*.png *.xpm)";?
    ???? fd->setFilters(filters);

    ? c.? 設定對話框返回什么?
    ??? fd->setMode( QFileDialog::ExistingFile );?
    ????AnyFile(一般用于save as對話框)
    ?? ExistingFile存在的一個文件
    ?? ExistingFiles存在的0個或多個文件(可用于選擇多個文件)
    ?? Directory返回目錄
    ?? DirectoryOnly返回目錄(選取文件的時候只選中目錄)??
    ?
    ? 2. 返回值:
    ???? a. 返回選擇中的一個文件(夾)名字
    ??????? QString s=fd->selectedFile();?
    ???? b. 選取多個文件(一定要設定ExistingFiles模式)
    ???????? QStringList slist=fd->selectedFiles();????
    ???????? ????? for(QStringList::Iterator it=slist.begin();it!=slist.end();it++) //迭代器
    ???????????????? qWarning(*it);


    附: 字符串列表QStringList使用方法

    ?1. 可以以append、+、<< 方式添加元素
    ????QStringList slist;
    ??? slist.append("string1");
    ??? slist += "string2";
    ??? slist << "string3" << "string4";

    2.迭代器取得每一個變量值?
    ?????? for(QStringList::Iterator it=slist.begin();it!=slist.end();it++)? qWarning(*it);

    3. 一種使用方式
    ??? QString s = "Red\tGreen\tBlue";
    ?????QStringList colors = QStringList::split( "\t", s );
    ?????cout << colors.join( ", " ) << endl;
    ?????輸出:?? Red, Green, Blue



    總結

    以上是生活随笔為你收集整理的Qt中的QFileDialog类的几个示范代码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。