Здравствуйте, гость ( Вход | Регистрация )
|
void* |
23.7.2008, 22:28
Сообщение
#1
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3
|
Предлагаю в данную тему скидывать все известные вам интересные фичи и "секреты" Qt. Думаю, так можно собрать неплохую коллекцию интересных возможностей Qt, где каждый сможет найти что-нибудь интересное для себя или узнать новое. Начну сам:
1) Макрос Q_UNUSED позволяет избежать предупреждений по поводу неиспользования какой-то переменной. Пример: 2) Функция QString Qt::escape(const QString &plain) позволяет конвертировать в строке, задаваемую параметром plain метасимволы HTML (<, >, &) в их HTML-эквиваленты. Пример: 3) Макрос Q_PROPERTY позволяет в некоторых случаях избежать приведения. Пример: to be continued... P.S. Надеюсь тема не умрет, и каждый будет ее поддерживать своими находками ----------------------- Ссылки на интересные возможности: 1) Link 2) Link Сообщение отредактировал Litkevich Yuriy - 31.1.2009, 12:52 |
|
|
|
![]() |
|
SABROG |
20.8.2010, 18:25
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Заметил интересную особенность при сериализации списка своих данных через оператор QDataStream в QSettings. Дело в том, что в принципе QDataStream умеет сериализовать QList, но для типа, который будет содержать контейнер нужно определять свои операторы <</>>. Предположим мы это сделали. Но при попытке сохранить список в QSettings мы получим ошибку, что тип не зарегестрирован как мета-тип:
Значит, чтобы поместить наш контейнер в QVariant надо еще прописать такую инструкцию: Но и этого не достаточно. При запуске приложения мы получим ошибку: Надо вызвать еще функцию: Причем главное не напортачить с текстовым именем, оно должно точно совпадать с именем типа. В итоге, чтобы поместить список с нашими данными, предположим, в .ini файл (QSettings) нужно прописать такое: Обратите внимание, там где вызывается второй раз qRegisterMetaTypeStreamOperators обычно предполагается, что вы где-то реализовали операторы для сериализации этого типа, но у нас эти операторы реализованы только для MyStruct. Дело в том, что Qt сама реализовала эти операторы для класса QList, нам лишь нужно сообщить какого типа данные он будет содержать. |
|
|
|
|
aliks-os |
6.3.2011, 21:24
Сообщение
#3
|
|
Студент ![]() Группа: Новичок Сообщений: 11 Регистрация: 7.4.2010 Пользователь №: 1603 Спасибо сказали: 0 раз(а) Репутация: 0
|
Уважаемый Sabrog,
вы показали как записывать в ini - qsettings.setValue("ListMyStruct", qVariantFromValue(msList));. Был бы вам очень признателен, если бы вы в ваш пример добавили как считать записанные данные из ini файл, а то что то не особо получается... |
|
|
|
void* Секреты и интересные возможности Qt 23.7.2008, 22:28
AD P.S. Мне кажется тему можно вверху прикрепить... 24.7.2008, 9:29
Tonal Цитата(AD @ 24.7.2008, 13:29) Не знаю, во... 24.7.2008, 10:16
AD Цитата(Tonal @ 24.7.2008, 11:16) Оно впол... 24.7.2008, 10:33
Tonal Цитата(AD @ 24.7.2008, 14:33) Цитата(Tona... 24.7.2008, 11:48
Litkevich Yuriy void*, для 1-го пункта часто имя переменной комент... 24.7.2008, 9:36
void* LitkevichВ Yuriy, приколупался лучше бы продолжил... 24.7.2008, 10:09
ЙаМайскЫйПчОЛ Цитата(AD @ 24.7.2008, 10:29) Не знаю, во... 24.7.2008, 11:12
void* Собственно продолжение. Простенький пример того, ч... 25.7.2008, 23:26
Петров Виталий Тоже поделюсь парой интересных моментов.
1) Если ... 18.9.2008, 8:31
void* также можно регулировать прозрачность любого окошк... 23.9.2008, 20:11
Litkevich Yuriy Цитата(kwisp @ 26.11.2008, 20:58) ... изв... 1.12.2008, 18:59
SABROG Использовать QLatin1String вместо QString где это ... 8.12.2008, 16:05
molchanoviv Только прирост этот будет незаметен. Так зачем это... 8.12.2008, 16:11
SABROG Цитата(molchanoviv @ 8.12.2008, 16:11) То... 8.12.2008, 16:17
SABROG К теме о сигналах. Бывают случаи, когда надо испус... 8.12.2008, 16:44
SABROG В Qt есть возможность использовать системные иконк... 8.12.2008, 18:01
SABROG В Qt можно соединять не только сигнал со слотом, н... 9.12.2008, 14:31
Admin Треп перенесен в тему Треп из темы Секреты и инте... 9.12.2008, 15:59
Litkevich Yuriy обнаружил интересное поведение в QTableView
если в... 5.2.2009, 19:45
Yuriy [quote name='Litkevich Yuriy' date='5.... 20.12.2010, 14:57
SABROG Не знаю куда это отнести к секретам или интересным... 9.2.2009, 20:43
Константин ну и секреты у вас
но всё-равно внесу свои пять к... 11.2.2009, 6:15
Admin Перенес обсуждение не относящееся к данной теме в ... 11.2.2009, 16:35
SABROG Еще один способ вывода отладочных сообщений для GU... 27.2.2009, 10:08
BRE Цитата(SABROG @ 27.2.2009, 10:08) Еще оди... 13.3.2009, 13:09
CrackedMind Вообще этого будет более чем достаточно
ЦитатаQErr... 13.3.2009, 12:59
SABROG Добавлю метод альтернативный методу QTimer::single... 13.3.2009, 14:49
PUMA Цитата(SABROG @ 13.3.2009, 14:49) Добавлю... 30.4.2015, 1:30
SABROG Пожалуй вопрос с enum'ом сюда помещу. В общем ... 13.3.2009, 20:18
Litkevich Yuriy Интересная особенность Qt Designer'а 16.3.2009, 12:12
SABROG Немножко заморочился на тему создания и извлечения... 20.3.2009, 15:02
AD SABROG, напиши, пожалуйста, тут о тех двух функция... 20.3.2009, 15:12
SABROG Цитата(AD @ 20.3.2009, 15:12) SABROG, нап... 20.3.2009, 15:15
AD Да нет! Я про аналоги getenv!!!... 20.3.2009, 16:40
SABROG В Qt есть недокументированные кроссплатформменные ... 20.3.2009, 17:11
Litkevich Yuriy Цитата(SABROG @ 20.3.2009, 20:11) В Qt ес... 20.3.2009, 17:43
SABROG
Для тех кто помешан на обезжиривании Qt. Вместе ... 20.3.2009, 22:06
Litkevich Yuriy любопытно 20.3.2009, 22:21
SABROG Цитата(Litkevich Yuriy @ 20.3.2009, 22:21... 22.3.2009, 16:28
ViGOur Тянет на статью в wiki. 22.3.2009, 17:18
Litkevich Yuriy Цитата(ViGOur @ 22.3.2009, 20:18) Тянет н... 22.3.2009, 17:24
CrackedMind Лишь одно скажу. Если конфигурировать сразу так бе... 23.3.2009, 9:25
Litkevich Yuriy Эх, как бы всё это разгрести. Я уже несколько раз ... 2.4.2009, 18:30
Litkevich Yuriy Ковырялся с документацией Qt 4.6 и сделал для себя... 5.4.2009, 9:56
CrackedMind А кто-нибудь обратил внимание, что в 4.5 появились... 11.4.2009, 23:06
Sokoloff Обнаружил тут, что QImage умеет читать postscript ... 6.5.2009, 9:47
Litkevich Yuriy Цитата(Sokoloff @ 6.5.2009, 13:47) ghosts... 6.5.2009, 10:06
Sokoloff Цитата(Litkevich Yuriy @ 6.5.2009, 11:06)... 6.5.2009, 10:18
SABROG Думаю никто не будет против, если я буду использов... 8.5.2009, 21:50
SABROG Немного про нормализацию сигнатур. Мое внимание пр... 20.6.2009, 15:02
SABROG Пользователи Qt, которые собирают свои приложения ... 28.6.2009, 13:52
Litkevich Yuriy -O3 на самом деле не макисальная, а альтернативная... 28.6.2009, 14:28
AD 0x - полная автоматизация. Ее ведь тоже можно испо... 28.6.2009, 15:04
Litkevich Yuriy Цитата(AD @ 28.6.2009, 19:04) 0xтакого кл... 28.6.2009, 15:27
AD Цитата(Litkevich Yuriy @ 28.6.2009, 16:27... 28.6.2009, 16:19
trdm Не такая уж и опечатка, у человека правильно мозг... 28.6.2009, 16:45
AD Цитата(trdm @ 28.6.2009, 17:45) Не такая ... 28.6.2009, 17:25
SABROG __fastcall в стиле Qt. В Delphi и MSVC есть аттриб... 6.7.2009, 13:39
SergSh QListView при инициализации считывает все строки д... 27.8.2009, 9:49
SABROG Цитата(SergSh @ 27.8.2009, 9:49) Чтобы эт... 23.2.2010, 19:39
SABROG Кроссплатформенный метод установки приоритета для ... 23.2.2010, 16:36
Litkevich Yuriy Ну собственно один вариант ещё и в списке рассылке... 23.2.2010, 19:22
SABROG Выложу сегодня 2 полезных "хака", которы... 2.4.2010, 0:05
Andrewshkovskii Цитата(SABROG @ 2.4.2010, 1:05) Выложу се... 17.4.2010, 15:48
xls Цитатаnamespace Hack { template <class To, clas... 31.8.2010, 11:31
loz Думаю что в данной теме необходимо упомянуть об ин... 11.4.2010, 8:56
SABROG Цитата(Andrewshkovskii @ 17.4.2010, 16:48... 19.4.2010, 12:13
SABROG Администратор одного программерского форума удалил... 24.4.2010, 11:55
Andrewshkovskii Да, я тоже заметил, что удалили. Хотел инфу кое-ка... 24.4.2010, 12:11
igor_bogomolov Цитата( SABROG)Администратор одного программерског... 24.4.2010, 12:11
SABROG Администратор это объяснил так:
ЦитатаВсе блоги, ... 24.4.2010, 15:44
SABROG На заметку:
Заполняем Qt контейнер без for:
#incl... 26.5.2010, 17:27
Litkevich Yuriy а зачем в
struct testAttributePredicate
оператор ... 26.5.2010, 19:17
SABROG Цитата(Litkevich Yuriy @ 26.5.2010, 20:17... 26.5.2010, 20:13
SABROG Реализовал установку приоритета потока в параллель... 21.6.2010, 18:23
kuzulis SABROG, а с Троллями (нокией) пробовали это обсуди... 21.6.2010, 18:54
SABROG Цитата(kuzulis @ 21.6.2010, 19:54) SABROG... 22.6.2010, 11:19
SABROG В старом проекте на Borland Builder C++ у меня был... 23.6.2010, 14:52
SABROG Продолжил издеваться над кнопками и qss:
qss
QP... 25.6.2010, 11:57
Алексей1153 Обнаружил любопытный спецэффект: если в качестве п... 1.8.2010, 11:53
SABROG Цитата(Гость_xls_* @ 31.8.2010, 12:31) К ... 1.9.2010, 8:21
xls Цитата(SABROG @ 1.9.2010, 8:21) Цитата(Го... 2.9.2010, 9:08
SABROG Цитата(xls @ 2.9.2010, 10:08) QTabWidgetP... 5.9.2010, 18:55
xls Цитата(SABROG @ 5.9.2010, 18:55) Через in... 6.9.2010, 9:27
SABROG Цитата(xls @ 6.9.2010, 10:27) ИМХО, лучше... 7.9.2010, 8:43
Гость_xls_* Цитата(SABROG @ 7.9.2010, 8:43) Цитата(xl... 13.11.2010, 12:35
kwisp Цитата(SABROG @ 7.9.2010, 8:43) Думаю это... 13.11.2010, 13:15
SABROG Понадобилось отследить изменения в файле, который ... 18.1.2011, 20:11
igor_bogomolov Если вы пишите плагины для QtDesigner и хотите что... 20.1.2011, 15:00
Алексей1153 Цитата(igor_bogomolov @ 20.1.2011, 17:00)... 22.1.2011, 22:05
SABROG В Wiki, на Developer Network нашел интересный вари... 25.1.2011, 22:15
Litkevich Yuriy Цитата(aliks-os @ 6.3.2011, 23:24) а... 6.3.2011, 21:30
Day Цитата(Петров Виталий @ 18.9.2008, 8:31) ... 26.3.2012, 11:48
Litkevich Yuriy Обсуждение вынес в отдельную тему: Работа с QSplit... 18.2.2013, 8:14
Litkevich Yuriy Цитата(PUMA @ 30.4.2015, 3:30) А есть спо... 7.5.2015, 11:53![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 14.12.2025, 17:48 |