Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: qtист от Март 17, 2009, 15:32



Название: QFileDialog
Отправлено: qtист от Март 17, 2009, 15:32
Есть простейший код:

Код
C++ (Qt)
QFileDialog dlg1(this);
dlg1.setDirectory("c:/Programming2008/cTM/Gener");
dlg1.exec();

При первом вызове все файлы в указанной директории вначале появляются,
потом тут же исчезают. Закрываю диалог,открываю опять - теперь всё нормально.
В чём фишка?


Название: Re: QFileDialog
Отправлено: shadone от Март 18, 2009, 13:14
какая версия Qt и Windows? В Qt 4.5.0 было сделано огромное количество улучшений и исправлений ошибок в QFileDialog.

кстати, попробуйте использовать асинхронный интерфейс диалога который появился в 4.5

Код
C++ (Qt)
QFileDialog dlg1(this);
dlg1.setDirectory("c:/Programming2008/cTM/Gener");
// по-умолчанию open() использует "родной" диалог операционной системы.
dlg1.setOptions(QFileDialog::DontUseNativeDialog);
dlg1.open(this, SLOT("on_file_dialog_closed()"));
 


Название: Re: QFileDialog
Отправлено: qtист от Март 18, 2009, 13:41
Версия Qt 4.4.3 коммерческая.

Причём раньше вроде работало,началось с какого-то непонятного момента.


Название: Re: QFileDialog
Отправлено: shadone от Март 18, 2009, 14:31
Версия Qt 4.4.3 коммерческая.

Причём раньше вроде работало,началось с какого-то непонятного момента.
мой совет - обновитесь до 4.5 - не-родные (non-native) файловые диалоги были сильно оптимизированы.


Название: Re: QFileDialog
Отправлено: Racheengel от Март 23, 2009, 15:16
4.4 полна багов. Так что и правда лучше обновиться.


Название: Re: QFileDialog
Отправлено: qtист от Март 24, 2009, 10:09
Поставил 5.5 - эта хрень ушла,но.....
теперь при открытии диалога идёт обрашение к дисководу
(у меня стоит ещё 3" дисковод) - что жутко раздражает.
Это есть под Win ,под linux такого нет.


Название: Re: QFileDialog
Отправлено: shadone от Март 24, 2009, 12:37
Поставил 5.5 - эта хрень ушла,но.....
теперь при открытии диалога идёт обрашение к дисководу
(у меня стоит ещё 3" дисковод) - что жутко раздражает.
Это есть под Win ,под linux такого нет.
насколько я знаю это не правда - в 4.4 обращения к дисководу тоже присутствуют. В 4.3 их (вроде бы) не было.

а вообще вините майкрософт - это у них простейший stat() на дисковод приводит к такому эффекту. Хотя в Qt надо бы придумать workaround.