crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
ltise
  опции профиля:
сообщение 9.2.2013, 22:24
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 65
Регистрация: 17.4.2010
Пользователь №: 1636

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет всем!

Пытаюсь использовать QFileDialog и QFileIconProvider, но оно ни в какую не пашет, тупо в диалоге подставляет иконки из системы (MacOsX).
Мне надо чтобы в диалоге для каждого моего файла рисовалось своя иконка с превью содержимого.....

Никто не сталкивался с подобной проблемой ?


class MyIconProvider : public QFileIconProvider
{
public:
  MyIconProvider() : QFileIconProvider()
  {
    _ico_str = QIcon(":/images/ico_str.png");
    _ico_smp = QIcon(":/images/ico_smp.png");
  }


  QIcon    icon(const QFileInfo & info) const
  {
    if (info.suffix().toLower() == "smp")
    {
      return _ico_smp;
    }

    if (info.suffix().toLower() == "str")
    {
      return _ico_str;
    }

    return QFileIconProvider::icon(info);
  }

  QIcon _ico_str;
  QIcon _ico_smp;

};




void MainWindow::on_actionOpen_triggered()
{
  QString file_name;
  {
    QFileDialog fileDialog(this, tr("Test Project"), "", tr("Test Project (*.smp;*.str)"));
    fileDialog.setIconProvider(new StrokesMakerIconProvider());
    fileDialog.setFileMode(QFileDialog::ExistingFiles);

    if (!fileDialog.exec())
      return;

    file_name = fileDialog.selectedFiles().first();
  }
}


Сообщение отредактировал ltise - 10.2.2013, 0:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.2.2013, 10:05
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


1) а загружаются ли картинки тут? Может, путь неверный
_ico_str = QIcon(":/images/ico_str.png");

2) поставь точку останова тут
return _ico_smp;
return _ico_str;
- вообще по этому месту проходит или нет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ltise
  опции профиля:
сообщение 10.2.2013, 13:44
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 65
Регистрация: 17.4.2010
Пользователь №: 1636

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 10.2.2013, 10:05) *
1) а загружаются ли картинки тут? Может, путь неверный
_ico_str = QIcon(":/images/ico_str.png");

2) поставь точку останова тут
return _ico_smp;
return _ico_str;
- вообще по этому месту проходит или нет?


Все проходит, пробовал даже возвращать одну иконку из стандартного набора для любых вариантов, всерно никакого результата.......

Счас думаю что будет прально сделать свой кодек для генерации превью и установить его в систему, но пока не нашел информации как именно это можно сделать. Но как-то же можно ? для мака превьюшки хранятся в ".DS_Store", в винде "Thumbs.db"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.2.2013, 19:32
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(ltise @ 10.2.2013, 1:24) *
Мне надо чтобы в диалоге для каждого моего файла рисовалось своя иконка с превью содержимого.....


в рамках данной задачи ворошить систему смысла мало - лучше вытащить указатели на объекты окон иконок, установить им обработчик paintEvent и нарисовать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 12.2.2013, 8:25
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Возможно, проблема в том, что не используется флаг QFileDialog::DontUseNativeDialog. В этом случае используется системный диалог для работы с файлами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 26.4.2025, 8:55