class CLastPath : public QObject { Q_OBJECT public: CLastPath(QObject *parent = 0); ~CLastPath(void); QString GetLastPath(QString Key); void SetLastPath(QString Key, QString Path); private: QSettings *m_Settings; };
CLastPath::CLastPath(QObject *parent) :QObject(parent) ,m_Settings(NULL) { std::string IniPath = CFilePath::Instance().GetIniPath(); QString FilePath = QString::fromStdString(IniPath) + "Setting.ini"; m_Settings = new QSettings(FilePath, QSettings::IniFormat); } CLastPath::~CLastPath(void) { } QString CLastPath::GetLastPath(QString Key) { return m_Settings->value(Key).toString(); } void CLastPath::SetLastPath(QString Key, QString Path) { int i = Path.lastIndexOf('/'); QString FilePath = Path.left(i); QVariant VarPath(FilePath); m_Settings->setValue(Key, VarPath); }
QString PngName = this->getSavePngName(); CLastPath LastPath; QString PngPath = LastPath.GetLastPath("LastSavePngPath"); QString Name = PngPath + "\\" + PngName; QString fileName = QFileDialog::getSaveFileName(this, QString::fromLocal8Bit("选择保存路径"), Name, tr("PNG(*.png);;JPG(*.jpg)")); if (!fileName.isEmpty()) { pixmap.save(fileName); LastPath.SetLastPath("LastSavePngPath", fileName); }
该QSettings将路径保存在一个ini文件中: