Russian Qt Forum
Май 23, 2024, 21:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Мелочь  (Прочитано 13221 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июль 07, 2014, 13:17 »

Что-то кладовая совсем плохо пополняется  Улыбающийся
Код
C++ (Qt)
inline bool CapsOn( void )
{
return (::GetKeyState(VK_CAPITAL) & 0x1);
}
 
Для чего - ну наверное все знают  Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4732



Просмотр профиля WWW
« Ответ #1 : Июль 07, 2014, 14:01 »

как-то на Qt-решение не сильно тянет Веселый
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #2 : Июль 07, 2014, 14:40 »

Как я люблю такие решения. Особенно когда нужна вещь, которую почти не используешь.

Критика:
1) Нет описания. Что оно делает?
Опустим мой опыт работы - я гляжу как новичек и не понимаю Улыбающийся Включает Caps и возвращает успех операции?

2) Боже мой, создал проект, вставил функцию чтобы попытаться скомпилировать и методом тыка понять, что она делает.
Нажимаем компиляция иии...
Цитировать
..\untitled\mainwindow.cpp: In function 'bool CapsOn()':
..\untitled\mainwindow.cpp:8:13: error: '::GetKeyState' has not been declared
     return (::GetKeyState(VK_CAPITAL) & 0x1);
             ^
..\untitled\mainwindow.cpp:8:27: error: 'VK_CAPITAL' was not declared in this scope
     return (::GetKeyState(VK_CAPITAL) & 0x1);
                           ^
..\untitled\mainwindow.cpp:9:1: warning: control reaches end of non-void function [-Wreturn-type]
И ничего не получается... Потому что нету таких функций Улыбающийся

И тут возникает вопрос - где же готовое решение?
Раз создали тему, потрудитесь описать что за решение, какие #include нужны и на какой ОС оно заработает. Просто из элементарной вежливости.

+1 к бесполезным темам Улыбающийся

PS вы бы ещё поучили как сову нарисовать Веселый
PPS очень весело как это решение в поиске находить Веселый Прям представляю
Цитировать
Надо узнать состояние капслока... Ммм... Поищу ка в поиске "Готовое решение мелочь"
« Последнее редактирование: Июль 07, 2014, 15:16 от Bepec » Записан
OKTA
Гость
« Ответ #3 : Июль 07, 2014, 15:16 »

http://www.lesyadraw.ru/animals/birds/kak-narisovat-sovu-karandashom-poetapno.html
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Июль 07, 2014, 16:32 »

только вместо 0х01 написать:

Код
C++ (Qt)
#define KEY_SHIFTED 0x8000
#define KEY_TOGGLED 0x0001
 

(ну, или на енумах или константах).

И да, читайте MSDN! Оно всяко лучше чем эппловская документация (буээ). Улыбающийся

Записан

ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Июль 07, 2014, 17:19 »

И да, читайте MSDN!
Сэр, последнюю неделю я только этим и занимаюсь! Просто балдею от MSDN, как все стройно, логично, особенно впечатляет ихний "conceptual" Улыбающийся И вот пришел к выводу что жизнь на этой платформе невыносима без  ф-ции CapsOn.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Июль 08, 2014, 10:39 »

2) Боже мой, создал проект, вставил функцию чтобы попытаться скомпилировать и методом тыка понять, что она делает.
Улыбающийся Ну что она делает ясно, а вот зачем... Это особенно болезненно в нативняке Вындоуз. Допустим мы хотим отловить месягу чтобы посмотреть как дальше ее обрабатывает Qt (см аттач). Просто поставив точку останова - мы будем туда попадать снова и снова, так и не доберемся до нужного места/контекста. А включить останов потом/после тоже не удается - сработает переключение на отладчик. Поэтому caps (а не др клавиша) - его не надо держать  Улыбающийся
Записан
Bepec
Гость
« Ответ #7 : Июль 08, 2014, 10:52 »

Мда, главная мысль не дошла Веселый

А хотел я сказать всего лишь - что ваш код неполный. Для того чтобы его использовать нужно:
1) Почитать описание GetKeyState.
2) Найти какой инклуд надо подключить для работоспособности данного шедевра.
3) Скомпилировать таки!
4) Понять, что это работает и будет работать только под винду.
5) К этому моменту человек уже самостоятельно напишет нормальное описание, а не куцые строчки кода без описания.

Но до 5 пункта не дойдёт никто Веселый Ибо никому нахрен не нужна такая мелочь за такие усилия.

PS мб для вас откровением станет, но есть такая программка Spy. Она позволяет отслеживать всё связанное с окном и сообщениями. А узнав номер сообщения можно поставить точку остановки с условием...
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Июль 08, 2014, 12:37 »

PS мб для вас откровением станет, но есть такая программка Spy. Она позволяет отслеживать всё связанное с окном и сообщениями. А узнав номер сообщения можно поставить точку остановки с условием...
Откровением не станет, сам недавно ее рекомендовал. Но вряд ли удастся иметь "точно такой же номер сообщения" при след запуске.

2) Найти какой инклуд надо подключить для работоспособности данного шедевра.
Если не знаете где брать инклуды на своей платформе - так я Вам сопли подтирать не нанимался Улыбающийся Не надо воспринимать все так буквально, типа copy/paste/happy

Мда, главная мысль не дошла Веселый
Точно не дошла, ну что ж поделать, если оно думать не хочет (зато верещит) -  никто и не донесет  Улыбающийся
Записан
Bepec
Гость
« Ответ #9 : Июль 08, 2014, 13:45 »

Последняя попытка воззвать к логике - раздел "Кладовая готовых решений", а не "Кладовая решений, которых ещё надо заставить работать".
Улыбающийся
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #10 : Июль 08, 2014, 14:39 »

Просто поставив точку останова - мы будем туда попадать снова и снова, так и не доберемся до нужного места/контекста. А включить останов потом/после тоже не удается - сработает переключение на отладчик. Поэтому caps (а не др клавиша) - его не надо держать  Улыбающийся

Гениально! Я бы не додумался  Улыбающийся

Видимо с этого и надо было пост начинать.
Записан

Гугль в помощь
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #11 : Июль 11, 2014, 01:07 »

>>Видимо с этого и надо было пост начинать.
А он не может, так мимо пробегал, плюнул чего-то и был таков
Записан

Юра.
Vlad_QtCr
Гость
« Ответ #12 : Май 21, 2018, 13:39 »

Форум сообщил, что тема устарела, но я посчитал необходимым оставить сообщение как реальный новичок в Qt. Bepec прав, кладовая должна иметь ГОТОВЫЕ решения, а какая-нибудь фишка размещается в разделе типа ПОЛЕЗНОСТИ. Я догадываюсь, что GetKeyState это проверка состояния нажатой "капс", а (VK_CAPITAL) & 0x1) подтверждает догадку. Единица, это скорее всего состояние - включен. Двоеточие перед "::GetKeyState" не понять, но не в этом суть.
Автор должен опубликовать полный пример. Версию Qt, список используемых файлов. Где применяется и почему. Не обязательно для новичков, просто так принято (люди с "высшим" в курсе, неполную работу просто не примут... без блата конечно)))). Вторая загадочная позиция "сопли вытирать не буду" тоже малопонятна. Я так могу выйти на улицу и вдруг сказать "значит счас пописаю здесь, ок?", "Не нравится отвернитесь, или идите мимо". Все-таки это безответственно, может быть школоло?
Я даже не тестировал фрагмент, опасаясь взрыва мозга от предварительных настроек. Пожалуй лучшим было бы решение, когда форумчане за автора "разжевали" бы этот фрагмент, но понятно, что работа эта лишняя (в некоторых постах намеки). Жаль, что форум пополняется такими тредами.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.097 секунд. Запросов: 22.