Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 13:08   #1
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
Восклицание QFileDialog::getSaveFileName выбирает не того пользователя

Проблема в следующем:
QtSDK по всей видимости при установке бросил в папку "пользователи" какую-то свою папочку, с именем в виде одного символа.
Когда я использую QFileDialog::getSaveFileName, запускается окошечко и оно все папки ищет в этой самой вышеописанной папке, а не в папке пользователя под которым сейчас находишься, там ищется и "рабочий стол" и "загрузки". В этой левой папке ничего этого нет. В результате - море ошибок и не возможность сохранения файла, никуда практически, разве что кроме жёсткого диска.
Как с этим бороться? Возможно нужно указать пользователя по умолчанию?
PinkPink вне форума Ответить с цитированием
Старый 25.04.2012, 14:56   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

В смысле "ищется"?
Цитата:
This is a convenience static function that will return a file name selected by the user.
Функция возвращает имя файла, выбранное пользователем, а не путь к файлу, если Вы об этом.
Код:
QString QFileDialog::getSaveFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )
Что Вы задаете в качестве
Цитата:
const QString & dir = QString()
?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 27.04.2012, 12:52   #3
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию


На изображении видно, как именно это происходит.
Вот код:
bool myDialog:n_save_clicked()
{
QString sFileName = QFileDialog::getSaveFileName(this, tr("Сохранить лабораторную работу"), "C:\\");
if (sFileName.isEmpty())
{
return false;
}
else{savefile(sFileName);}
return true;
}
PinkPink вне форума Ответить с цитированием
Старый 27.04.2012, 13:48   #4
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Попробуй
Код:
"C:\\" заменить на "C:"
и кириллицу в коде попробуй сменить на латынь, возникает ошибка?
вот мой рабочий код:
Код:
CrosswordGrid->sFileNameCrossword = QFileDialog::getSaveFileName(0, tr("Crossword Save"), "", "*.xwc");
фильтр обязателен: "*.xwc"
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook

Последний раз редактировалось xwicked; 27.04.2012 в 13:52.
xwicked вне форума Ответить с цитированием
Старый 27.04.2012, 17:46   #5
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию

Цитата:
Сообщение от xwicked Посмотреть сообщение
Попробуй
Код:
"C:\\" заменить на "C:"
и кириллицу в коде попробуй сменить на латынь, возникает ошибка?
вот мой рабочий код:
Код:
CrosswordGrid->sFileNameCrossword = QFileDialog::getSaveFileName(0, tr("Crossword Save"), "", "*.xwc");
фильтр обязателен: "*.xwc"
к сожалению не помогает.
я думаю причина не в этом. а в том, что Qt каким-то образом "берёт" не того пользователя. как так?(
неужели никто с таким не сталкивался?
посмотрите на скриншотах то что получается
PinkPink вне форума Ответить с цитированием
Старый 27.04.2012, 18:04   #6
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Я уверен на 100%, что если прикрепишь весь проект, то всё на моей тестовой машине WinXP SP2 заработает.
ЗЫ: Вот почему так, я даже не знаю... заработает и всё...
ЗЫЫ: Можно один чёткий скрин с ошибкой.
ЗЫЪЫ: на том скрине ошибка не по приведённому коду...
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 27.04.2012, 18:18   #7
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию

Цитата:
Сообщение от xwicked Посмотреть сообщение
Я уверен на 100%, что если прикрепишь весь проект, то всё на моей тестовой машине WinXP SP2 заработает.
ЗЫ: Вот почему так, я даже не знаю... заработает и всё...
ЗЫЫ: Можно один чёткий скрин с ошибкой.
ЗЫЪЫ: на том скрине ошибка не по приведённому коду...
возможно и заработает, но нужно то, чтобы везде работало.
почему же не по коду? на том скрине как раз та ошибка, которая беспокоит, других нет
PinkPink вне форума Ответить с цитированием
Старый 27.04.2012, 18:28   #8
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

В коде путь к диску C. На скрине не найден путь к C:\\Users\ляля\Desktop.
Создавай папку на диске C, перемещай туда проект, никакой кириллицы и пробелов в названии чтобы не было(!!!). Изменяй все пути на латынь(без пробелов).
Проверяй права на диск C, твой ли это комп и только после этого пиши сюда...
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 27.04.2012, 19:32   #9
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию

Цитата:
Сообщение от xwicked Посмотреть сообщение
В коде путь к диску C. На скрине не найден путь к C:\\Users\ляля\Desktop.
Создавай папку на диске C, перемещай туда проект, никакой кириллицы и пробелов в названии чтобы не было(!!!). Изменяй все пути на латынь(без пробелов).
Проверяй права на диск C, твой ли это комп и только после этого пиши сюда...
1.путь прописала на диск C
2. когда выбираешь в списке рабочий стол, чтобы сохранить файл на рабочем столе, и появляется этот путь, который видно на скрине.
3.киррилицу убрала, пробелы тоже.
4. пробовала полностью ставить ваш код
5.проект на диске С в папке Qt
PinkPink вне форума Ответить с цитированием
Старый 27.04.2012, 19:36   #10
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию

мне кажется немного не понятна суть проблемы. дело не в пути, а в том, что уже в самом окне когда пользователь выбирает папку для сохранения файла поиск осуществляется не там где нужно. странно. возможно где-то в Qt есть настройки связанные с этим, иначе мне не понятно почему он для себя берёт другого пользователя

Последний раз редактировалось PinkPink; 28.04.2012 в 02:11.
PinkPink вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Абитура выбирает направление Alendorff Свободное общение 9 29.06.2011 11:49
Не правильно выбирает данные sasha_prof Microsoft Office Access 13 19.11.2010 17:25
select не выбирает записи Lokos БД в Delphi 17 06.10.2010 23:19
Использование QFileDialog Sparky Qt и кроссплатформенное программирование С/С++ 4 01.06.2010 13:58