Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Заблокирован

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

03.09.2014, 15:01. Показов 3470. Ответов 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
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru