Russian Qt Forum
Ноябрь 24, 2024, 20:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с getOpenFileName  (Прочитано 5336 раз)
AD
Гость
« : Декабрь 30, 2008, 13:05 »

Добрый день. Проблема в том, что периодически на работе ломается локальный сервак, из-за этого функция getOpenFileName виснет, т.к. пытается  залезть по указанным путям. Проверялось это так: диалог нормально выскакивал, как только отрубал сеть. Как заставить указанную функцию не лезть в сетевые ресурсы, а отображать только диски "My Computer"! Заранее благодарен. Улыбающийся
Записан
Dendy
Гость
« Ответ #1 : Декабрь 31, 2008, 18:38 »

QFileDialog::getOpenFileName() как и остальные статические методы QFileDialog вызывают системные диалоги. Больше опций чем тот список аргументов что они принимают нет. Это проблема исключительно вашей операционной системы. Как вариант можно использовать родной QFileDialog, одинаковый для всех платформ. Лично я так делаю под иксами, так как текущий диалог из KDE4 для меня тоже работает не шустро и временами глючит.
Записан
AD
Гость
« Ответ #2 : Январь 03, 2009, 18:46 »

Цитировать
Как вариант можно использовать родной QFileDialog, одинаковый для всех платформ. Лично я так делаю под иксами, так как текущий диалог из KDE4 для меня тоже работает не шустро и временами глючит.
Какой именно родной диалог? Ну совсем понял? Родная система (ОС) - Windows XP. Хотелось бы узнать, как обойти эту проблему? Использовать Windows-API функции? Но ведь это не очень удобно, если учесть, что я использую Qt! При этом стараюсь выдержать кроссплатформенность. Небольшой кусок кода, зависящий от системы, взят в специальные препроцессорные условия.
Записан
Dendy
Гость
« Ответ #3 : Январь 03, 2009, 19:03 »

Имеется в виду использовать не статический метод (создающий родной для ОС диалог), а сам QFileDialog, одинаковый для всех платформ:

Код:
QFileDialog fileDialog;
fileDialog.set*( ... );
...
fileDialog.exec();
QStringList files = fileDialog.selectedFiles();
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Январь 03, 2009, 21:03 »

Использовать Windows-API функции? Но ведь это не очень удобно, если учесть, что я использую Qt!

QFileDialog::getOpenFileName()  как раз и есть обверстка над Windows-API. Как уже сказал Dendy, статические функции QFileDialog юзают нативные диалоги.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
AD
Гость
« Ответ #5 : Январь 09, 2009, 20:02 »

Цитировать
QFileDialog::getOpenFileName()  как раз и есть обверстка над Windows-API. Как уже сказал Dendy, статические функции QFileDialog юзают нативные диалоги.
Это-то я понимаю! Я не знал что именно родное Qt-шное надо использовать. Спасибо, через несколько дней поэкспериментирую! Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.107 секунд. Запросов: 23.