PDA

View Full Version : گرفتن آدرس پوشه؟



glassysmart
سه شنبه 14 اردیبهشت 1389, 22:50 عصر
سلام . من می خواهم به وسیله یک پنجره دیالوگ آدرس یک پوشه را بگیرم باید از چه کلاسی استفاده کرد و اگه مثالی بزنید دیگه خیلی خوب می شود

Nima_NF
سه شنبه 14 اردیبهشت 1389, 23:20 عصر
کلاس QFileDialog . سپس با setFileMode آن را به QFileDialog::Directory تنظیم کنید تا فقط دایرکتوری قابل انتخاب باشد.

مثال و توضیحات در این لینک ها:
http://doc.trolltech.com/4.6/dialogs-findfiles.html
http://doc.trolltech.com/4.6/qfiledialog.html#FileMode-enum

glassysmart
چهارشنبه 15 اردیبهشت 1389, 19:42 عصر
سلام
من این را می نویسم اما اون جوابی را که باید بگیرم نمی گیرم.

QString directory = QFileDialog::getExistingDirectory(this,
tr("Find Files"), QDir::currentPath());
لطفا بگین که چه جوری از setFileMode استفاده کنم((مشکلم گرامری هست))

Nima_NF
چهارشنبه 15 اردیبهشت 1389, 23:43 عصر
متاسفانه سیستم را چند وفتی هست پاکسازی کردم، هنوز روی سیستم کامپایلر جدید و Qt نصب نکردم تا دقیق تست کنم.

در هر صورت مورد زیر را تست کنید ببینید منظورتان همین هست یا نه، یعنی گزینه آخر ShowDirsOnly را قرار دهید تا فقط فولدر ها نمایش داده شود (دیگه setFileMode نمی خواهد):



QString dir = QFileDialog::getExistingDirectory(this, tr("Open Folders"),
QDir::currentPath(), QFileDialog::ShowDirsOnly);

glassysmart
پنج شنبه 16 اردیبهشت 1389, 00:24 صبح
سلام
منظور من در کل این هست که من می خواهم وقتی روی پوشه ی x کلیک می کنم و دکمه ی open انتخاب مب کنم آدرس آون پوشه برگردد اما این دستورات بالا وقتی من open را انتخاب می کنم بوشه ی x را باز می کند و به داخل آن می رود .

Nima_NF
پنج شنبه 16 اردیبهشت 1389, 01:22 صبح
وقتی در قطعه کد فوق ok را کلیک می کنید، آدرس فولدر در متغیر dir که از نوع QString هست ذخیره می شود، مثلا سپس می توانید آن مسیر را در essageBox نمایش دهید یا هر جای دیگر استفاده کنید:



QString dir = QFileDialog::getExistingDirectory(this, tr("Open Folders"),
QDir::currentPath(), QFileDialog::ShowDirsOnly);

QMessageBox msgBox;
msgBox.setText(dir);
msgBox.exec();