Название: Как изменить текст в header-е QFileSystemModel? Отправлено: billy4685 от Март 10, 2016, 09:51 Доброе утро! На днях у меня появилась необходимость изменить стандартные надписи (Name, Size, Type Date, Modified) в header-е QFileSystemModel на свои (Название, Размер, Тип, Дата изменения). На первый взгляд простая задача, но увы никак не получается это реализовать. ???
На форме я разместил QTreeView, и написал следующий код: Код: QFileSystemModel *model = new QFileSystemModel(this); Проблем с QTreeWidget или QableWidget с подобными ситуациями не возникало, там все срабатывает. Может кто знает как правильно задавать текст header-у для QFileSystemModel? Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: __Heaven__ от Март 10, 2016, 11:12 Можно попробовать наследоваться от этой модели и переопределить метод QVariant QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: gil9red от Март 10, 2016, 11:41 setHeaderData у QFileSystemModel не переопределен, поэтому нужно создать свой. Набросал минимальный работающий пример:
Код
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: Hellraiser от Март 10, 2016, 11:50 Да зачем такие сложности??? Надо подключить перевод - все колонки для QFileSystemModel уже переведены.
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: gil9red от Март 10, 2016, 12:24 Да зачем такие сложности??? Надо подключить перевод - все колонки для QFileSystemModel уже переведены. ;DНазвание: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: __Heaven__ от Март 10, 2016, 14:05 Простота хуже воровства!
Шутка :) Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: billy4685 от Март 11, 2016, 13:37 Да зачем такие сложности??? Надо подключить перевод - все колонки для QFileSystemModel уже переведены. да уж)) как я не додумался)) спасибо)) раньше поступал так же с QCalendar. Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: billy4685 от Март 11, 2016, 13:52 ??? Вот только как сделать QFileSystemModel переводимым (ну или сам текст в header-е)? Я ж его кодом создаю. Свойство переводимости раньше просто задавал в дизайнере, в коде пока его не использовал, так что не знаю как зовется эта функция. Для календаря раньше при выборе языка просто заганял его используя метод setLocale(). У QFileSystemModel его даже нет.
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: gil9red от Март 11, 2016, 13:57 Сделайте перевод, а после его подгрузите:
Код
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: billy4685 от Март 11, 2016, 15:28 Сделайте перевод, а после его подгрузите: Это я знаю) В окне где создаю QFileSystemModel, даже создал метод changeEvent():Код
Код: void MyWindow::changeEvent(QEvent *event) Помню как-то в QTreeWidget-е делал перевод надписей. Тогда его создавал в дизайнере, и в самом QTreeWidget-е для надписей в header-е выставлял в дизайнере свойство "переводимый". Тогда перевод срабатывал. А теперь вот на форму в дизайнере добавил QTreeView, а в коде создал QFileSystemModel и его уже разместил на QTreeView. Перевод не срабатывает. Понимаю, что нужно как-то для надписей header-а в QFileSystemModel выставить кодом это свойство "переводимый", но увы не знаю как((. Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: VPS от Март 11, 2016, 16:10 У меня так сработало ( для Qt4.8 ):
Код
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: billy4685 от Март 11, 2016, 17:00 У меня в Qt 5.3.2 нет. (
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: __Heaven__ от Март 11, 2016, 17:50 Под виндой просто так не подсасываются стандартные переводы, на сколько я помню.
Название: Re: Как изменить текст в header-е QFileSystemModel? Отправлено: VPS от Март 11, 2016, 18:13 У меня в Qt 5.3.2 нет. ( Здесь (http://stackoverflow.com/questions/18979062/qt-dynamic-translation-of-dialog-windows?answertab=active#tab-top)человек пишет, что в Qt5.2 использовал другое имя файла.P/S: у меня переводит под windows 7 x32 с qt4.8.7 и qt5.5.1 |