Russian Qt Forum
Мая 07, 2025, 19:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с getOpenFileName  (Прочитано 5439 раз)
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.031 секунд. Запросов: 20.