Проблемы с работой GUI на Qt

Сообщения
3
#1
Есть класс унаследованный от QMainWindow, в нем устанавливаю один QDockWidget:

Код:
    QDockWidget* treeDockWidget = new QDockWidget( this );
    treeDockWidget->setWidget( new TreeWidget );
    treeDockWidget->setAllowedAreas( Qt::DockWidgetArea::AllDockWidgetAreas );
    addDockWidget( Qt::DockWidgetArea::LeftDockWidgetArea, treeDockWidget );
При растяжении виджета, он произвольно меняет свои размеры на размеры по умолчанию. Такое поведение проявляется только на Astra Linux. На Ubuntu 18.04, на Debian все работает правильно.

Собирал под Asrta Linux CE 2.12.13
Версия пакета qt5-default: 5.11.0-0astra23
Код программы прилагается

В чем может быть причина?

AppDemonstration.gif
 

Вложения

  • 6.5 КБ Просмотры: 361
Последнее редактирование:

Olej

New member
Сообщения
1 307
#2
В том, что:
- указывайте вид и версию ОС которую используете, какое ядро, какие обновления?
- указывайте какой Qt используете (версию) и откуда брали?
- прикладывайте работающий прототип кода, чтобы его можно было собрать, проверить и воспроизвести.
Вот смотрите, например, что делается в Astra Linux SE 1.6 :
Код:
olej@astra:~$ aptitude search Qt | grep ' qt3' | wc -l
9
olej@astra:~$ aptitude search Qt | grep ' qt4' | wc -l
10
olej@astra:~$ aptitude search Qt | grep ' qt5' | wc -l
15
Потому что уже много-много раз здесь в форуме писалось: "наблюдаю эффект XXX" ... а потом оказывается при повторении, что такой эффект XXX ни у кого более не воспроизводится вообще...
Даже задумываться о таких "недоопределённых" вопросах недосуг, не хочется ... глядя на квалификацию большинства из спрашивающего контингента. ;)
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#3
В такой "недоопределённой" формулировке ответ может быть только таким:
- DE Fly (производное о KDE) базируется на Qt ...
- в Fly размеры виджетов и фреймов замечательно меняются...
- так что ищите косяки в своём программном коде.
 

Olej

New member
Сообщения
1 307
#5
При растяжении виджета, он произвольно меняет свои размеры на размеры по умолчанию. Такое поведение проявляется только на Astra Linux. На Ubuntu 18.04, на Debian все работает правильно.
Ваше утверждение не подтверждается.
Ищите у себя!
Screenshot_20191122_094714.png
.
Сделал сборку Cmake в Debian 10 + Astra Linux (картинка как-раз из Astra):
Код:
ej@astra:~$ lsb_release -a
No LSB modules are available.
Distributor ID: AstraLinuxCE
Description:    Astra Linux CE 2.12.21 (Orel)
Release:        2.12.21
Codename:       orel
И там и там дочернее окно замечательно меняет свой размер и на нём фиксируется.
Собран именно ваш код без малейших изменений.
Разбирайтесь что вы там наустанавливали с (в) Qt5.
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#6
Собран именно ваш код без малейших изменений.
Разбирайтесь что вы там наустанавливали с (в) Qt5.
Код:
olej@astra:~/WORK/Qt5/App/bin$ ldd App
        linux-vdso.so.1 (0x00007fff289e4000)
        libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f7630a2b000)
        libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f7630296000)
        libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f762fb93000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f762f811000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f762f50d000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f762f2f6000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f762ef57000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f762ed3a000)
        libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f762eaae000)
        libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f762e87b000)
        libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f762e579000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f762e35f000)
        libicui18n.so.63 => /usr/lib/x86_64-linux-gnu/libicui18n.so.63 (0x00007f762de96000)
        libicuuc.so.63 => /usr/lib/x86_64-linux-gnu/libicuuc.so.63 (0x00007f762dacc000)
        libpcre2-16.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f762d85d000)
        libdouble-conversion.so.1 => /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.1 (0x00007f762d64b000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f762d447000)
        libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f762d133000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f763149d000)
        libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f762cf01000)
        libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f762cc4b000)
        libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f762c99c000)
        libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f762c76f000)
        libicudata.so.63 => /usr/lib/x86_64-linux-gnu/libicudata.so.63 (0x00007f762ab81000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f762a90e000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f762a5ce000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f762a3bc000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f762a193000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f7629f8f000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f7629d89000)
        libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f7629b74000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f762996c000)
Код:
olej@astra:~/WORK/Qt5/App/bin$ ls -l App
-rwxr-xr-x 1 olej olej 1240384 Ноя 22 09:45 App
(размер - можете начать сравнение с этого)
 

Olej

New member
Сообщения
1 307
#7
В порядке подсказки/наводки могу сказать следующее:
- у меня в этой инсталляции Linux не было установлено пакетов из репозитория, требуемых для сборки Qt (я вообще не люблю Qt во всех Linux;))
- пришлось "по-быстрому" доустановить требуемое для сборки и проверки...
- а именно следующее (и ничего больше):
Код:
olej@astra:~/WORK/Qt5/App$ sudo apt install cmake
...
Настраивается пакет cmake (3.7.2-1) …
Код:
olej@astra:~/WORK/Qt5/App$ sudo apt install qt5-default
...
Настраивается пакет libx11-xcb-dev:amd64 (2:1.6.4-3+deb9u1) …
Настраивается пакет x11proto-dri2-dev (2018.4-4) …
Настраивается пакет libopengl0:amd64 (1.0.0+git20180308-3) …
Настраивается пакет qtbase5-dev-tools (5.11.0-0astra23) …
Настраивается пакет libxshmfence-dev:amd64 (1.2-1) …
Настраивается пакет libdrm-dev:amd64 (2.4.92-1) …
Настраивается пакет x11proto-fixes-dev (1:2018.4-4) …
Настраивается пакет x11proto-xf86vidmode-dev (2018.4-4) …
Настраивается пакет libxcb-dri2-0-dev:amd64 (1.13-1astra1) …
Настраивается пакет libxcb-render0-dev:amd64 (1.13-1astra1) …
Настраивается пакет x11proto-damage-dev (1:2018.4-4) …
Настраивается пакет libxcb-dri3-dev:amd64 (1.13-1astra1) …
Настраивается пакет x11proto-xext-dev (2018.4-4) …
Обрабатываются триггеры для libc-bin (2.24-11+deb9u4) …
Настраивается пакет libxext-dev:amd64 (2:1.3.3-1) …
Настраивается пакет x11proto-gl-dev (2018.4-4) …
Настраивается пакет libxcb-shape0-dev:amd64 (1.13-1astra1) …
Настраивается пакет libxcb-glx0-dev:amd64 (1.13-1astra1) …
Обрабатываются триггеры для man-db (2.7.6.1-2) …
Настраивается пакет libxxf86vm-dev:amd64 (1:1.1.4-1) …
Настраивается пакет libxfixes-dev:amd64 (1:5.0.3-1) …
Настраивается пакет libglvnd-core-dev:amd64 (1.0.0+git20180308-3) …
Настраивается пакет libxcb-sync-dev:amd64 (1.13-1astra1) …
Настраивается пакет libxcb-randr0-dev:amd64 (1.13-1astra1) …
Настраивается пакет mesa-common-dev:amd64 (18.1.3-0astra1) …
Настраивается пакет libxcb-xfixes0-dev:amd64 (1.13-1astra1) …
Настраивается пакет libxdamage-dev:amd64 (1:1.1.4-2) …
Настраивается пакет libglvnd-dev:amd64 (1.0.0+git20180308-3) …
Настраивается пакет libxcb-present-dev:amd64 (1.13-1astra1) …
Настраивается пакет libgl1-mesa-dev:amd64 (18.1.3-0astra1) …
Настраивается пакет libglu1-mesa-dev:amd64 (9.0.0-2.1) …
Настраивается пакет qtbase5-dev:amd64 (5.11.0-0astra23) …
Настраивается пакет libqt5opengl5-dev:amd64 (5.11.0-0astra23) …
Настраивается пакет qt5-default:amd64 (5.11.0-0astra23) …
(я вам пакеты для версий показал, так много)

Всё!
Ничего более, относящегося к Qt, сверх того что установлено в Astra Linux по дефаулту:
Код:
olej@astra:~/WORK/Qt5/App/bin$ aptitude search qt5 | grep ' qt5' | grep ^i
i A qt5-assistant - Qt 5 Assistant
i  qt5-default - Qt 5 development defaults package
i  qt5-qmake - Qt 5 qmake Makefile generator tool
i A qt5-qmake-bin - Qt 5 qmake Makefile generator tool — binary file
i  qt5-style-plugins - Qt 5 Styles module
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#9
1. Это багрепорт совсем о другом - у них разделитель возвращается в исходную позицию только после изменений размеров главного родительского окна.

2. Я вам 3-мя сообщениями собрал специально ваш неизменный (чтобы ничего не привнести) исходный код + и в Asrta Linux CE + и в Qt5. И выше там показан скриншот (не нарисован, а именно скопирован при исполнении), где разделитель окон замечательно перемещается в новую позицию и там фиксируется.
 
Последнее редактирование: