Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: yarick от Октябрь 31, 2012, 14:17



Название: Прижимаю компоненты addStretch(1), а они всё равно "мерцают" при вставке
Отправлено: yarick от Октябрь 31, 2012, 14:17
У меня есть QMainWindow, в котором с помощью setCentralWidget я устанавливаю главный виджет с QVBoxLayout-менеджером.
Там добавлены кнопки (QPushButton) и текстовые поля (QTextEdit) - и кнопки выступают в роли свитков - т.е. по нажатию на кнопку - под ней вставляется или удаляется текстовое поле.
Прижимаю всё это снизу addStretch(1).
Когда происходит вставка виджета в эту структуру (insertWidget) - почему-то система странно перестраивается - она сначала растягивается с большими пробелами, а потом резко сжимается (как она и должна быть - в сжатом виде).
Если много кликать по кнопкам-свиткам - то это моргание заметно и режет глаз. Я пытался перед и после перестройки запрещать обновление и перерисовку виджета в через setUpdatesEnabled - но это не помогает.
И ещё после всех компонентов после обновления вставляется пробел большой куда они разворачивались. Если окно свернуть и снова нажать на вставку виджета - то пробел снова внизу вставиться - они туда заезжают в развёрнутом состоянии, когда мерцают

если виджет как отдельное окно через show() показать - то  там проблем не наблюдается...


Название: Re: Прижимаю компоненты addStretch(1), а они всё равно "мерцают" при вставке
Отправлено: QtCoder от Ноябрь 01, 2012, 08:22
Когда-то делал нечто подобное на Layout'e. Была такая же проблема - вставка виджетов происходит очень заметно. Ушел от этого вставляя виджеты в QTableWidget.
Вот пост в моем блоге на эту тему
http://qtcoder.blogspot.ru/2011/09/qwidget-qtablewidget.html (http://qtcoder.blogspot.ru/2011/09/qwidget-qtablewidget.html)


Название: Re: Прижимаю компоненты addStretch(1), а они всё равно "мерцают" при вставке
Отправлено: Bepec от Ноябрь 01, 2012, 09:41
А чем QToolBox не устроил? Ваши "свитки" это он и есть. Сверху чуть гуталином помазать так и вообще - красавец будет.


Название: Re: Прижимаю компоненты addStretch(1), а они всё равно "мерцают" при вставке
Отправлено: yarick от Ноябрь 01, 2012, 10:43
А чем QToolBox не устроил? Ваши "свитки" это он и есть. Сверху чуть гуталином помазать так и вообще - красавец будет.
Мне нужны именно собственные свитки, т.к. я хочу туда текст вставлять и оригинально их обрабртать


Название: Re: Прижимаю компоненты addStretch(1), а они всё равно "мерцают" при вставке
Отправлено: Bepec от Ноябрь 01, 2012, 13:17
Берём класс Qt (любой) и банку гуталина. Наследуемся от класса, пишем свои функции, мажем гуталином -> профит. Имеются ваши собственные свитки с оригинальной обработкой. Правда слегка пахнут гуталином, но это дело опыта. (И марки гуталина)