Заблокирован

QStyleSheet, как задать радиус у градиентного бэк - граунда?

03.09.2014, 15:01. Показов 3568. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Вот есть у меня стил фрейма:
C++ (Qt)
1
2
3
4
QFrame#SuperFrame
{
    background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(46, 54, 142, 255), stop:0.234667 rgba(80, 163, 194, 255), stop:0.709333 rgba(173, 210, 223, 255), stop:1 rgba(84, 139, 168, 255));
}
Бэкграунд в порядке с градиентом , но вот хотелось бы, что б у этого фрейма был радиус.
Добавляю:
C++ (Qt)
1
2
3
border-width: 1px;
border-style: solid;
border-radius: 10px;
- радиус появляется, но он появляется как бы не учитывая бэк граунда - см скрин, как избавится от этого?
Миниатюры
QStyleSheet, как задать радиус у градиентного бэк - граунда?  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.09.2014, 15:01
Ответы с готовыми решениями:

Как задать радиус окружности, который будет меняться от 5 до 50
Мне необходимо задать радиус окружности, который будет меняться от 5 до 50, как это можно задать?

Задать радиус двух шаров
Задать радиус двух шаров: один значительно меньше второго. определить их объм,после чего узнать,сколько шаров с меньшим...

Как проверить бэк?
Стандартный запрос "link=..." дает каждый раз разное кол-во страниц и если линков несколько тысяч, то "Искать в найденном" тоже...

28
Заблокирован
04.09.2014, 09:11  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от CriDos Посмотреть сообщение
QFrame *myFrame = new QFrame(widget);
Ну что тут фактический происходит? Вызывается конструктор копирования QFrame, а как он реализован - неизвестно. Об этом можно только догадываться, либо копаться в дебрях сорцов кьютЭ. Эт конечно бесит в этом Qt.
Цитата Сообщение от CriDos Посмотреть сообщение
Обращение к несуществующей памяти и возможное падение.
С чего вдруг? Может у них нет общих указателей на динамическую память ... Ты ж не знаешь, что в конструкторе копирования творится, совсем не факт, что там копирование идёт поле в поле.
0
Поклонник Qt
 Аватар для CriDos
314 / 210 / 41
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
04.09.2014, 10:10
Цитата Сообщение от -NEURON- Посмотреть сообщение
Ну что тут фактический происходит? Вызывается конструктор копирования QFrame, а как он реализован - х..й его знает. Об этом можно только догадываться, либо копаться в дебрях сорцов кьютЭ. Эт конечно бесит в этом Qt.
Охохо)
Откуда тут конструктор копирования)
Лишь создание блока памяти (объект) по скелету класса "QFrame" с установленным предком "widget", и затем, указатель на этот блок присваивается переменной "myFrame", которая имеет тип указателя на QFrame...

Конструктор копирования использовался бы в случае такой конструкции: QFrame myFrame = QFrame(widget);
Но для данного класса, он запрещён)

p.s. Кто-то ддосит ресурс, видимо:black_eye.:
0
Заблокирован
04.09.2014, 10:35  [ТС]

Не по теме:

Цитата Сообщение от CriDos Посмотреть сообщение
Охохо)
да чё то я на текилу в последнее время стал налегать конкретно :-! ... Мозги тупят периодический :fie: Пора бросать :rofl:



Цитата Сообщение от CriDos Посмотреть сообщение
с установленным предком "widget",
А вот ты до байтово объясни, как это происходит с учётом вирт тэйбл

Добавлено через 11 минут
Да забей на объяснения, вот ты мне может чётко сказать, что тут построчно происходит и как это удалять и в каком порядке:
C++ (Qt)
1
2
3
4
5
6
7
ClassFromProxy::ClassFromProxy(QGraphicsWidget *parent) : QGraphicsProxyWidget(parent)
{
    QWidget* widget = new QWidget;
    widget->setAttribute( Qt::WA_TranslucentBackground, true );
    ClassFromDesignerFrame* frame = new ClassFromDesignerFrame(widget);
    setWidget(widget);    
}
тут ClassFromProxy - это класс, унаследованный от QGraphicsProxyWidget, который потом добавляется в сцену addItem-ом.
Вот смотри на аллокаторы:
1. QWidget* widget = new QWidget;
2. ClassFromDesignerFrame* frame = new ClassFromDesignerFrame(widget);

два раза выделяется память, потом я эту ерунду всю засовываю в setWidget класса ClassFromProxy, который унаследован от QGraphicsProxyWidget. Вот по идее:
1. Я сначала из сцены должен удалить этот прокси виджет removeItem-ом;
2. Дальше вызвать delete для экземпляра ClassFromProxy

и всё?
Или см. сколько раз выделялась память, надо бы сделать ClassFromDesignerFrame* frame переменной членом класса и в деструкторе ClassFromProxy её так же удалять ?
0
Поклонник Qt
 Аватар для CriDos
314 / 210 / 41
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
04.09.2014, 11:07
Цитата Сообщение от -NEURON- Посмотреть сообщение
и всё?
Или см. сколько раз выделялась память, надо бы сделать ClassFromDesignerFrame* frame переменной членом класса и в деструкторе ClassFromProxy её так же удалять ?
widget сделать членом класса, и в деструкторе убивать его, он в свою очередь, убьёт ClassFromDesignerFrame.
Но сначала должно произойти removeItem.

А вообще, QWidget должен быть общим для всех виджетов, а не для каждого создавать отдельно)
Так-же как и форма для стандартных виджетов...
0
Заблокирован
04.09.2014, 11:15  [ТС]
Цитата Сообщение от CriDos Посмотреть сообщение
widget сделать членом класса, и в деструкторе убивать его, он в свою очередь, убьёт ClassFromDesignerFrame.
Так экзепшен
Да уж ... этот QGraphicsProxyWidget видать не мало крови ещё попьёт )))
В общем походу тот виджет, который ты в наследника QGraphicsProxyWidget запихнул setWidget-ом не нуждается в удаление, т.к. при удаление экземпляра наследника QGraphicsProxyWidget этот самый внутренний виджет тоже удаляется, а поскольку он удаляется, он тянет за собой ClassFromDesignerFrame, по крайней мере должен тянуть

Добавлено через 24 секунды
Цитата Сообщение от CriDos Посмотреть сообщение
А вообще, QWidget должен быть общим для всех виджетов
Для экономии 4-х байт на каждом прокси ?
0
Поклонник Qt
 Аватар для CriDos
314 / 210 / 41
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
04.09.2014, 11:18
Цитата Сообщение от -NEURON- Посмотреть сообщение
Для экономии 4-х байт на каждом прокси ?
Экономия процессорного времени и памяти)
А так, всё конечно зависит от масштаба проекта...
Для меня это очень критично, т.к. количество элементов может дойти до 10000 на 1 схему)
Если в каждом был бы ещё и левый виджет... в общем, ты понял)
0
Заблокирован
04.09.2014, 11:29  [ТС]
Цитата Сообщение от CriDos Посмотреть сообщение
Для меня это очень критично, т.к. количество элементов может дойти до 10000 на 1 схему)
int size = sizeof(QWidget);
size - 24 байта. Твои 10000 элементов = 240000 байт, тоесть 240 килобайт оперативки - сильная экономия, при современный размерах её в 10-ки гигабайт

Цитата Сообщение от CriDos Посмотреть сообщение
А вообще, QWidget должен быть общим для всех виджетов,
Ну а как ты его сделаешь общим? Вот приведи простой пример со своими крутыми инициализациями базовых классов в списках инициализации
0
Поклонник Qt
 Аватар для CriDos
314 / 210 / 41
Регистрация: 09.11.2013
Сообщений: 336
Записей в блоге: 1
04.09.2014, 11:57
Цитата Сообщение от -NEURON- Посмотреть сообщение
Ну а как ты его сделаешь общим? Вот приведи простой пример со своими крутыми инициализациями базовых классов в списках инициализации
Блин, ну тут же тоже не всё так просто
Объекты (фреймы и тд) будут постоянно добавляться/удаляться динамически, или же всё это будет только 1 раз инициализироваться...
Возможность доступа к отдельным элементам, включая дочерним виджетам которые являются дочерними в фреймах.
Может у тебя в проекте вообще можно отказаться от создания всей этой фигни в куче и создавать на стеке)
Как минимум, можно упростить себе жизнь и забыть об утечках
0
Заблокирован
04.09.2014, 16:54  [ТС]
Цитата Сообщение от CriDos Посмотреть сообщение
Объекты (фреймы и тд) будут постоянно добавляться/удаляться динамически
будут
Цитата Сообщение от CriDos Посмотреть сообщение
Возможность доступа к отдельным элементам, включая дочерним виджетам которые являются дочерними в фреймах.
нужна
Цитата Сообщение от CriDos Посмотреть сообщение
Может у тебя в проекте вообще можно отказаться от создания всей этой фигни в куче
я изначально ваще хотел забит ьна всю эту кучу под названием Qt и писать GUI на AMD Mantle

Добавлено через 4 часа 22 минуты
Цитата Сообщение от CriDos Посмотреть сообщение
frame->setStyleSheet(R"(
* * * * * * * * * * * * background-color: qlineargradient(spreadad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(46, 54, 142, 255), stop:0.234667 rgba(80, 163, 194, 255), stop:0.709333 rgba(173, 210, 223, 255), stop:1 rgba(84, 139, 168, 255));
* * * * * * * * * * * * border-width: 1px;
* * * * * * * * * * * * border-style: solid;
* * * * * * * * * * * * border-color: black;
* * * * * * * * * * * * border-radius: 10px");
Что за макрос R"" тут setStyleSheet(R"( ?

Добавлено через 18 минут
Слушай, и ещё, как в коде поменять стайл шит нашего навороченного прокси виджета с фреймом внутри (который в дизайнере рисовался) ?
В сцене я могу получить по нажатию клавиши мышки нужный мне GraphcisItem, я его могу сопоставить со своим классом , который наследовался от QGraphcisProxyWidget (адреса совпадают), пробую setStyleSheet и вижу шит, максимум, что я могу настроить - это стиль прозрачного родителя виджета, у которого мы бэкграунд отрубали спецом ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2014, 16:54

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

Как начать писать бэк
Всем привет, впрочем вопрос в заголовке. Не знаю с чего начать писать бэкенд

Построить несколько концентрических окружностей. Задать максимальный радиус и шаг его изменения
Помогите пожалуйста сделать задание в QB. Построить несколько концентрических окружностей. Задать максимальный радиус и шаг его...

Задать радиус круга и вычеслить площадь этого круга
Задать радиус круга и вычеслить площадь этого круга Помогите решить это Добавлено через 7 минут помогите


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru