LINUX.ORG.RU

Qt 5.6.0 - Появляется странное окно при выполнении app.exec()

 


0

2

Столкнулся с такой проблемой.

Я веду разработку программы на Qt 5.4.2. В какой-то момент народ стал жаловаться, что при старте программы появляется загадочное окно с кнопкой Cancel. Выяснилось, что это окно стало появляться в Qt версии 5.6.0 и выше (есть и в 5.6.2).

Ниже ссылка на обсуждение. Там обсуждаются всякие конфиги, но суть в том, что проблема оказалась не в конфигах, а жестко связана с версией Qt. То есть, странное окно появляется в Qt 5.6.0 и выше, как минимум на Windows и Linux, на 32-х и 64-х битах:

https://github.com/xintrea/mytetra_dev/issues/19

Окно появляется в момент исполнения app.exec(). Отдебажиться не могу, потому что некуда в коде ставить брекпоинт.

Теперь сижу и думаю, как мне поймать появление этого окна, как понять кто его запускает и откуда оно появляется?

Код проекта: https://github.com/xintrea/mytetra_dev

Внешний вид окна: http://i.piccy.info/i9/bbd1ad95597ed93227f98c3f9d95f802/1477641550/3799/10471...

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)

Почему ты ведешь разработку в 5.4.2? А не 5.6? 5.7? 5.8?

anonymous
()
Ответ на: комментарий от UVV

Чё-то у него столько треша в проекте.. все комменты на русском, куча глобальных переменных..

Он, кажется, когда-то объяснял, почему комменты на русском. Желающих присылать патчи нет, а одному разработчику проще поддерживать код с комментариями на родном языке. (Кстати, я согласен с тем, что грамотный текст на русском лучше, чем безграмотный на английском. :) Первый вариант при необходимости лечится приглашением стороннего переводчика, второй - только полным переписыванием, да и вообще позорище.)

У комментариев на русском, конечно, есть ещё недостаток - программа, скорее всего пролетит мимо репозиториев всех популярных дистрибутивов. Но опять-таки недостатком это будет только, когда найдутся потенциальные мейнтейнеры, а сам автор пропихиванием в дистрибутивы заниматься не собирается, это отдельная и довольно-таки неблагодарная работа. Он лучше в программу что-то полезное добавит.

Xintrea, поправь, если я что-то изложил неправильно или переврал.

Позиция, конечно, спорная, и в своём проекте так бы делать не стал. Но - автор вкладывает в программу свои усилия, и определять приоритеты вложения усилий - это его право.

Да, слегка грустно, но не треш, треш был бы, если бы в программе были соблюдены все мыслимые гайдлайны и кодестайлы, а полезность программы для конечного пользователя была бы на уровне GNU Hello.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Ну не знаю. Если человек пишет свою программу не только для русскоязычных пользователей, то уж лучше безграмотный английский.

И никакого позорища тут абсолютно нет, большинство разработчиков-носителей английского языка прекрасно понимают, что если разработчик из стран Восточной Европы/Азии/Латинской Америки, то у него будет много ошибок в английском.

В эпоху интернационализации на это как-то всем стало тупо наплевать. Никогда не видел, чтобы кто-нибудь на GitHub'е или технических форумах писал «ппц, выучи английский язык, а потом пиши код!». Половине сугубо пофиг на это, а другая половина, наоборот, с радостью исправит то, что вы там понаписали, если они заинтересуются проектом. Всё-таки большинство склоняются к мнению, что программист код писать должен, а не ударяться в шекспирство и прочую гуманитарию.

Хуже всего, когда кому-нибудь достаётся в поддержку такое:

https://github.com/crutchwalkfactory/motocakerteam/blob/master/Projects/vr/vr...

или такое:

https://github.com/BGCX067/ezxlock-svn-to-git/blob/master/trunk/LockWidget.cpp

Сорян, но я лучше 20 раз сломаю глаза об какой-нибудь китайский диалект английского (Chingilsh), чем буду с переводчиком наперевес ковыряться в подобной каше неизвестных мне слов или иероглифов.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от hobbit

Xintrea, поправь, если я что-то изложил неправильно или переврал.

Все верно, только есть пара моментов.

1. Даже в коде ядра Linux до середины двухтысячных были комменты на национальных языках, и никого это особо не парило, включая Торвальдса. Потихоньку выпилили, но как-то жили.

2. Комментарии на русском не является препятствием разработчикам, если действительно проект нужный. Недавно MyTetra форкнул то ли китаец, то ли еще кто, на письма не отвечает, но люто-бешено коммитит. Проект называется MyTetra WebEngine, страница на гитхабе https://github.com/beimprovised/mytetra_webengine/network . Причем разработчик довольно грамотен, он пилит все на умных указателях, подключил boost, и код его, по всей видимости, прекрасен, но мне понять довольно сложно.

Зато я теперь не верю в сказки о том, что наличие русского в комментариях программы создают какие-то препятствия в развитии проекта. Так же спокойно смотрю на лоровские вскрики про треш в коде. Как показала реальная практика, код проекта достаточно прост и понятен иностранным разработчикам настолько, что позволил им сделать форк на относительно большой кодовой базе. Форкнулись, и поехали пилить своё, и ничего из того, что так драматически представляют лор-аналитики, им не помешало это сделать.

3. Самое главное. Я уже об этом писал, но повторюсь. Я мыслю на русском языке. И считаю родной язык частью процесса разработки. Родной язык неотделим от тех понятий, которые разработчик закладывает в код. Я бы просто не смог потянуть проект таких размеров, если бы использовал английские комментарии. Это было бы для меня психологически и интеллектуально слишком сложно. А зачем повышать сложность? Ведь опытный программист знает, что программирование - это не кодирование, это, по сути, борьба со сложностью и хаосом. А те кто призывают вести разработку на неродном языке, своими заявлениями просто подрывают конкуретное преимущество национальных разработчиков, и ставят в более выгодное положение англоговорящих, для которых английский родной. Поэтому пусть они идут в пень.

Да и кроме того, MyTetra - это всего лишь моя вторая программа на плюсах. До нее я делал только одну прогу, в которой вообще только начинал разбираться что такое ООП и С++ - это игра Ежик-попрыгунчик: лесная тропа. Как по мне, так для второй проги на плюсах вышло достаточно неплохо.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от EXL

Хуже всего, когда кому-нибудь достаётся в поддержку такое:
https://github.com/crutchwalkfactory/motocakerteam/blob/master/Projects/vr/vr...

А что там покоробило? Boton и Presionado? Можешь рассматривать это как диалект английского.


или такое:
https://github.com/BGCX067/ezxlock-svn-to-git/blob/master/trunk/LockWidget.cpp

Так ведь код должен говорить сам за себя. Тут есть фанатики, которые считают, что камметы - зло. Но тебе ничто не мешает не обращать внимания на иероглифы и писать код.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Вот мне нечего делать, тратить своё время и разбираться что там и как переводится на английский. Я с ходу не скажу, что такое «ctecla», к примеру. И это я маленький кусочек показал. Могу найти и показать простыню, которую «поддерживали» разработчики разных стран и в которой именование переменных на испанском/итальянском/португальском языках вперемешку.

Но тебе ничто не мешает не обращать внимания на иероглифы и писать код.

Там иероглифы не только в комментариях.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Если человек пишет свою программу не только для русскоязычных пользователей, то уж лучше безграмотный английский.

Кстати, ты пользователей с программистами не перепутал? Пользователю совершенно до фонаря, на каком языке комментарии в проекте.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от EXL

Могу найти и показать простыню, которую «поддерживали» разработчики разных стран и в которой именование переменных на испанском/итальянском/португальском языках вперемешку.
Там иероглифы не только в комментариях.

Когда национальщина попадает в сам код - это да, зло. Тут я с тобой согласен. Однако проблема в принципе некритична для языков с латиницей, как минимум до тех пор, пока код не начинают продвигать как международную разработку.

Кстати, в MyTetra русские только комментарии. Можно их тупо удалить и радоваться чистоте.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от EXL

Но в дистрах поддерживать программу будут англоязычные мейнтейнеры.

Всегда считал, что майнтейнеры должны заниматься подгонкой внешней среды для возможности выполнения программы. Они что, еще и код правят, чтоб завести на своей платформе? Ужосо.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от hobbit

У комментариев на русском, конечно, есть ещё недостаток - программа, скорее всего пролетит мимо репозиториев всех популярных дистрибутивов. Но опять-таки недостатком это будет только, когда найдутся потенциальные мейнтейнеры, а сам автор пропихиванием в дистрибутивы заниматься не собирается, это отдельная и довольно-таки неблагодарная работа. Он лучше в программу что-то полезное добавит.

У комментариев на русском, конечно, есть ещё недостаток - программа, скорее всего пролетит мимо репозиториев всех популярных дистрибутивов.

Ахаха, можно подумать, мейнтейнеры старательно штудируют исходники всех своих пакетов. В большинстве случаев они его не то что не открывают, а они скорее всего будут не программистами.

anonymous
()
Ответ на: комментарий от ult

Но сам он походу китаец, ибо зовут его Hugh Young, и он ковыряется с такими проектами как nana за авторством Cnjinhao, там у них в мемберах некто Jinhao.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Ахаха, можно подумать, мейнтейнеры старательно штудируют исходники всех своих пакетов. В большинстве случаев они его не то что не открывают, а они скорее всего будут не программистами.

А разве не они должны собрать программу под нужную версию нужного дистрибутива? Это, конечно, не программирование, но в том, как выглядят исходники, где найти файл проекта и чем запустить его на компиляцию, мейнтейнер, наверное, должен разбираться. А отсюда до разглядывания самого кода уже всего один шаг остаётся (например, если из-за случайной несовместимости версий библиотек компилятор начал ругаться, и мейнтейнер полез выяснять, в чём дело... а там... что бы вы думали... Волшебный кролик!)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.