Russian Qt Forum
Ноябрь 24, 2024, 11:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Стандартный диалог выбора папки
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Стандартный диалог выбора папки (Прочитано 8971 раз)
Paramon
Гость
Стандартный диалог выбора папки
«
:
Декабрь 22, 2014, 17:29 »
Qt 4.8.6
Вопрос тривиальный - как отобразить окно выбора папки такое же, как через винапишную функцию SHBrowseForFolder? Может флаги какие? Или это в принципе невозможно, кроме как использовать тот же SHBrowseForFolder?
Хочу вот такой диалог
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Стандартный диалог выбора папки
«
Ответ #1 :
Декабрь 22, 2014, 18:04 »
Можно немного другой диалог вызвать:
QFileDialog::getExistingDirectory
Записан
Paramon
Гость
Re: Стандартный диалог выбора папки
«
Ответ #2 :
Декабрь 23, 2014, 10:40 »
Так в том то и дело, что "немного" другой. А я бы хотел как на скрине. Привязываться к функциям WinAPI не хотелось бы.
Если средствами Qt это сделать невозможно - я отстану. Но надежда есть.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Стандартный диалог выбора папки
«
Ответ #3 :
Декабрь 23, 2014, 10:42 »
На сколько я помню, именно такой диалог из Кьюта не вызвать. Могу и ошибаться. Но никто тебе не мешает сделать сою реализацию на винапи конкретно для винды.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Стандартный диалог выбора папки
«
Ответ #4 :
Декабрь 23, 2014, 10:44 »
Я в папке qt src выполнил поиск на предмет содержания SHBrowseForFolder в файле.
В qtbase\src\plugins\platforms\windows нашёлся qwindowsdialoghelpers.cpp
Правда, я так и не разобрался, как сделать так, чтобы вызывался SHBrowseForFolder
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Стандартный диалог выбора папки
«
Ответ #5 :
Декабрь 23, 2014, 10:46 »
Попробуй глянуть
void QFileDialog::setOption(Option option, bool on = true) опцию QFileDialog::DontUseNativeDialog
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Стандартный диалог выбора папки
«
Ответ #6 :
Декабрь 23, 2014, 11:03 »
Ды не, там тогда строится какой-то преднастроенный диалог, не нативный.
Записан
Paramon
Гость
Re: Стандартный диалог выбора папки
«
Ответ #7 :
Декабрь 24, 2014, 11:34 »
Что интересно - на WindowsXP диалог такой как у меня на скрине. А вот уже на семёрке не то.
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Стандартный диалог выбора папки
«
Ответ #8 :
Декабрь 24, 2014, 11:43 »
Да, если покапаться в классах - там явно видно, что такой существует только в XP
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Стандартный диалог выбора папки
«
Ответ #9 :
Декабрь 24, 2014, 11:44 »
В самой семерке же видоизменили диалоги.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Paramon
Гость
Re: Стандартный диалог выбора папки
«
Ответ #10 :
Декабрь 24, 2014, 11:48 »
Цитата: Пантер от Декабрь 24, 2014, 11:44
В самой семерке же видоизменили диалоги.
Ну как это видоизменили, если даже системные утилиты на семёрке отображают диалог как на скрине.
Я так понимаю - иного выхода, как ковыряться в классах Qt и собирать его из сорцов, нет?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Стандартный диалог выбора папки
«
Ответ #11 :
Декабрь 24, 2014, 11:58 »
У меня такое предположение, что в 7 появился новый диалог выбора каталога и Кьют юзает его. Соответственно, под этот диалог появилась новая винапишная функция. Но старая осталась и стрые проги юзают ее. Могу ошибаться. Зачем копаться в Кьюте, если можно у себя сделать обертку, которая будет вызывать диалог через винапишную функцию? Там, думаю, реализация будет тривиальной.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Paramon
Гость
Re: Стандартный диалог выбора папки
«
Ответ #12 :
Декабрь 24, 2014, 12:03 »
Цитата: Пантер от Декабрь 24, 2014, 11:58
Зачем копаться в Кьюте, если можно у себя сделать обертку, которая будет вызывать диалог через винапишную функцию? Там, думаю, реализация будет тривиальной.
Что-то типа если компилим под винду - вызываем винапишную функцию, иначе стандартную.
Последний вопрос - как понять, под что мы собираем?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Стандартный диалог выбора папки
«
Ответ #13 :
Декабрь 24, 2014, 12:06 »
http://bit.ly/1x3jHbE
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Стандартный диалог выбора папки
«
Ответ #14 :
Декабрь 24, 2014, 12:42 »
Или есть вариант свой такой же нарисовать
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...