Решено: Баг в QFileDialog? (или проблема только у меня)
Модератор: Модераторы разделов
Решено: Баг в QFileDialog?
Доброго времени суток!
Некоторое время назад наблюдаю странную проблему: в Qt есть класс QFileDialog. В нем есть опция QFileDialog::DontUseNativeDialog, Если её присвоить значение false, то диалог выбора файлов откроется без проблем.
Если эту опцию установить в true - вначале ничего не будет происходить, затем появится белое окно (видимо сам диалог) и, через некоторое время, приложение упадёт. Перед падением будет наблюдаться увеличение потребления памяти.
Это только у меня так?
Во вложении сделал небольшой тестовый проект. Используется Qt 5.15.11 (на Qt6 не пробовал).
P.S. Для проверки пробовал запустить стороннюю программу (которая тоже использует Qt) - LMMS. Тоже падает при попытке открыть диалог выбора файлов.
Некоторое время назад наблюдаю странную проблему: в Qt есть класс QFileDialog. В нем есть опция QFileDialog::DontUseNativeDialog, Если её присвоить значение false, то диалог выбора файлов откроется без проблем.
Если эту опцию установить в true - вначале ничего не будет происходить, затем появится белое окно (видимо сам диалог) и, через некоторое время, приложение упадёт. Перед падением будет наблюдаться увеличение потребления памяти.
Это только у меня так?
Во вложении сделал небольшой тестовый проект. Используется Qt 5.15.11 (на Qt6 не пробовал).
P.S. Для проверки пробовал запустить стороннюю программу (которая тоже использует Qt) - LMMS. Тоже падает при попытке открыть диалог выбора файлов.
- Вложения
-
- untitled.tar.gz
- (1.45 КБ) 12 скачиваний
Последний раз редактировалось devilr 16.01.2024 21:51, всего редактировалось 3 раза.
Re: Баг в QFileDialog?
Ни чего такого не наблюдаю, диалог не падает.
Если хочется узнать почему падает, то запустите в gdb это. После получения информации в каких библиотеках это происходит, их нужно пересобрать эти библиотеки с отладочной информацией и установкой исходников. После этого можно просто в отладчике просмотреть где это происходит. Тут скорее всего Gentoo, тогда подробнее по отладке смотреть тут.
Если хочется узнать почему падает, то запустите в gdb это. После получения информации в каких библиотеках это происходит, их нужно пересобрать эти библиотеки с отладочной информацией и установкой исходников. После этого можно просто в отладчике просмотреть где это происходит. Тут скорее всего Gentoo, тогда подробнее по отладке смотреть тут.
Спасибо сказали:
Re: Баг в QFileDialog?
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Re: Баг в QFileDialog?
Спасибо, я просто хотел, чтобы это запустил ещё кто-то, кроме меня.
Добавлено (20:08):
Попробовал запустить через gdbКод: Выделить всё
$ gdb untitled
GNU gdb (Gentoo 13.2 vanilla) 13.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from untitled...
(gdb) run
Starting program: /dev/shm/untitled/untitled
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff356f6c0 (LWP 27429)]
[New Thread 0x7ffff2d6e6c0 (LWP 27430)]
[New Thread 0x7fffe33ff6c0 (LWP 27432)]
[Detaching after fork from child process 27433]
[New Thread 0x7fffe2bfe6c0 (LWP 27435)]
[New Thread 0x7fffe23fd6c0 (LWP 27480)]
Thread 1 "untitled" received signal SIGSEGV, Segmentation fault.
0x00007ffff67817ea in ?? () from /lib64/libc.so.6
Re: Баг в QFileDialog?
Некоторое время назад стало всплывать в различных программах (например, Librecad и Cura). Вероятно, после того, как пакетный менеджер при установке затянул ещё и обновления. Но у меня приложение не падает, а через пару-тройку минут всё же отрисовывает окно.вначале ничего не будет происходить, затем появится белое окно (видимо сам диалог)
Спасибо сказали:
Re: Баг в QFileDialog?
Я же ссылку дал. Т.е. нужно создать два файла конфига для сборки debugsyms и installsource, как там показано. А далее создать файл в каталоге /etc/portage/package.env, например /etc/portage/package.env/debug.env и назначить пакеты для сборки с отладочной информацией и установкой исходников.
/etc/portage/package.env/debug.env:
Код: Выделить всё
sys-libs/glibc debugsyms installsource
и так далее
Код: Выделить всё
(gdb) bt full
Re: Баг в QFileDialog?
ormorph пока проблема скорее в том, чтобы определить - проблема локальная или глобальная. На этом форуме, только один сказал, что есть некая проблема - Obscurus.
я смотрел, конечно же. Ничего особо криминального не вижу.
А просто так пересобирать всё в debug-mode - идея так себе. Хотя бы потому, что непонятно, что именно приводит к проблеме...
Код: Выделить всё
(gdb) bt full
А просто так пересобирать всё в debug-mode - идея так себе. Хотя бы потому, что непонятно, что именно приводит к проблеме...
Re: Баг в QFileDialog?
Запускали хоть только в одном оконном менеджере? Если запускать в openbox, то без разницы что там выставлено, должно всё время запускать тот диалог что запускается при значении true, так как другого кроме как встроенного там нет.
Re: Баг в QFileDialog?
Да. Как и раньше. Вообще, этой машине уже 2 года, я как на неё поставил в своё время Calculate Linux, так и пользую. Разве что обновляю регулярно. И, до сих пор, таких глюков не наблюдал.
Чисто для своих программ, я эту настройку просто могу поставить в фальш - может когда и починят, не критично. Из глобальных, на базе Qt у меня есть разве что LMMS, но я её крайне редко пользуюсь.
Re: Баг в QFileDialog?
Надежда умирает последней. У меня что в TDE, что в KDE всё работает нормально без сбоев, только в TDE, постоянно работает стандартный Qt диалог. Обновлялся только вчера.
Re: Баг в QFileDialog?
Кстати, вспомнил, что какое-то время назад, проскакивал баг, при котором в стандартном диалоге каталоги с русскими названиями (типа Документы, Рабочий стол и прочее) буквы становились "кракозябрами" и наблюдались дикие тормоза при работе в этом диалоге. Но - падений не было. Потом, это как-то прошло.
Добавлено (17:03):
ormorph, кстати, а в какой версии Qt проверяли? Может в этом дело?Re: Баг в QFileDialog?
Код: Выделить всё
$ eix qtgui
[I] dev-qt/qtgui
Доступные версии: (5) 5.15.11-r2(5/5.15.11)^t
{+X accessibility dbus debug egl eglfs evdev gles2-only ibus jpeg +libinput linuxfb +png test tslib tuio +udev vnc vulkan wayland}
Установленные версии: 5.15.11-r2(5/5.15.11)^t(00:00:53 24.11.2023)(X accessibility dbus egl jpeg libinput png udev vulkan -debug -eglfs -evdev -gles2-only -ibus -linuxfb -test -tslib -tuio -vnc -wayland)
Домашняя страница: https://www.qt.io/ https://invent.kde.org/qt/qt/qtbase https://community.kde.org/Qt5PatchCollection
Описание: The GUI module and platform plugins for the Qt5 framework
Спасибо сказали:
Re: Баг в QFileDialog?
Совершенно случайно выяснил, что если создать нового пользователя, открыть консоль, загрузиться этим пользователем, скопировать файл untitled в его домашний каталог и попробовать запустить - всё нормально работает.
Как думаете, в чём может быть дело?
Как думаете, в чём может быть дело?
- cyberhoffman
- Сообщения: 45
- ОС: Gentoo
Re: Баг в QFileDialog?
Около года назад была похожая (или эта же) проблема: комп надолго задумывался при запуске кутешных опендиалогов. И неважно, откуда стартовали эти диалоги, из моих ли это проектов или даже при открытии чего-нибудь в qtcreator. Нагуглил решение на буржуйских сайтах: нужно очистить все qt-конфиги из хомяка юзера (точно уже не помню, но вроде ~/.config/qt-что-то-там, или ~/.local/share/qt-что-то-там).
Проблема появилась, насколько помнится, после обновления Qt в системе. Поэтому подозреваю, что конфигах хомяка где-то что-то было прописано предыдущей версией фреймворка, что жутко не нравилось обновлённой и последняя долго пыталась это переварить, но при этом даже не думала исправлять имеющийся конфиг.Как думаете, в чём может быть дело?
Спасибо сказали:
- Bizdelnick
- Модератор
- Сообщения: 20800
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Баг в QFileDialog?
Там ведь ещё наверняка какие-нибудь превьюхи генерятся, возможно, в этом проблема.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
Re: Баг в QFileDialog?
cyberhoffman спасибо, вечером проверю.
Bizdelnick всякие кеши я очистил в первую очередь, не помогло. А вот насчёт настроек самого Qt - очень даже может быть.
Bizdelnick всякие кеши я очистил в первую очередь, не помогло. А вот насчёт настроек самого Qt - очень даже может быть.
- Bizdelnick
- Модератор
- Сообщения: 20800
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Баг в QFileDialog?
Я не про кеши. Какой-то генератор превьюх может глючить на определённом файле или файлах какого-то типа. А у другого пользователя работает, потому что у него в хомяке проблемного файла нет.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Баг в QFileDialog?
Так превьюха тогда будет влиять, только если она лежит на рабочем столе. Или нет?Bizdelnick писал: ↑16.01.2024 16:04А у другого пользователя работает, потому что у него в хомяке проблемного файла нет.
- Bizdelnick
- Модератор
- Сообщения: 20800
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Баг в QFileDialog?
Не знаю, что он там по умолчанию открывает. Может быть, хомяк, может быть, недавно открытые файлы. Надо смотреть.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
Re: Баг в QFileDialog?
Решение нашлось.
Файл .config/QtProject.conf оказался почему то весом аж в 570426259 байт. Удаление оного решило проблему.
P.S. Оказывается, не только у меня была такая проблема
https://forum.qt.io/topic/144685/unrealistically-large-config-file-of-qtproject/5
Файл .config/QtProject.conf оказался почему то весом аж в 570426259 байт. Удаление оного решило проблему.
P.S. Оказывается, не только у меня была такая проблема
https://forum.qt.io/topic/144685/unrealistically-large-config-file-of-qtproject/5
Спасибо сказали: