Установить свойства виджета в PySide можно не только через соответствующие методы и конструктор класса. Можно их изменять с помощью метода setProperty по имени.
btn = QPushButton("Click Me")
btn.setProperty("flat", True)
Это аналогично вызову
btn.setFlat(True)
Если указать несуществующее свойство, то оно просто создается
btn.setProperty("btnType", "super")
Получить его значение можно методом .property(name)
btn_type = btn.property("btnType")
Когда это может быть полезно?
▫️Можно просто хранить какие то данные в виджете и потом их доставать обратно
widget = QWidget()
widget.setProperty('my_data', 123)
print(widget.property('my_data'))
▫️ Назначая эти свойства разным виджетам можно потом отличить виджеты во время итераци по ним. Например, найти все кнопки со свойством my_data="superbtn".
Но ведь вместо кастомного свойства можно использовать objectName, будет тот же результат.
Да, но y ObjectName есть ограничение - только строки.
▫️ Если нам потребуется не просто поиск а, например, сортировка по числу, то свойства позволяют нам это сделать. Поддерживается любой тип данных
widget.setProperty('my_data', {'Key': 'value'})
widget.setProperty('order', 1)
all_widgets.sort(key=w: w.property('order'))
Но ведь Python позволяет всё вышеперечисленное сделать простым созданием атрибута у объекта
widget.order = 1
widget.my_data = 123
Да, но я думаю что не надо объяснять почему не стоит так делать. К тому же, если у виджета нет свойства то метод .property(name) вернет None, а отсутствующий атрибут выбросит исключение.
▫️ Действительно полезное применение кастомным свойствам - контроль стилей. Здесь атрибутами не обойтись, нужны именно свойства.
Дело в том, что в селекторах стилей можно указывать конкретные свойства виджетов на которые следует назначать стиль.
Просто запустите этот код
from PySide2.QtWidgets import *
if __name__ == "__main__":
app = QApplication([])
widget = QWidget(minimumWidth=300)
layout = QVBoxLayout(widget)
btn1 = QPushButton("Action 1")
btn2 = QPushButton("Action 2")
btn3 = QPushButton("Action 3", flat=True)
layout.addWidget(btn1)
layout.addWidget(btn2)
layout.addWidget(btn3)
# добавим кастомное свойство одной кнопке
btn1.setProperty("btnType", "super")
# добавляем стили
widget.setStyleSheet(
"""
QPushButton[btnType="super"] {
background-color: yellow;
color: red;
}
QPushButton[flat="true"] {
color: yellow;
}
"""
)
widget.show()
app.exec_()
С помощью селектора мы избирательно назначили стили на конкретные кнопки.
Как получить список всех кастомный свойств?
Функция получения списка кастомных свойств отличается от получения дефолтных.
def print_widget_dyn_properties(widget):
for prop_name in widget.dynamicPropertyNames():
property_name = prop_name.data().decode()
property_value = widget.property(property_name)
print(f"{property_name}: {property_value}")
#tricks#qt
#IaaS#PaaS
Очень хорошо проиллюстрирована разница между тем что такое on-premise/IaaS/PaaS/SaaS. Чтобы вы больше не путались кратко дополню картинку:
On-premise - Означает что контора сама занимается
- постройкой дата-центра
- подведением всего необходимого к нему
- закупкой серверов
- соеденением серверов внутри ЦОД
- установкой ОС на сервера, виртуализацией серверов
- установкой ПО для загрузки и хранения данных
- установкой СУБД
- установкой Кибербеза
- установкой/разработкой прикладного ПО
IaaS - компания закупает у оператора коммерческого ЦОД (их еще называют облачными провайдерами или гиперскейлерами) подписку/арендные платежи за то, что оператор будет заниматься:
- постройкой дата-центра
- подведением всего необходимого к нему
- закупкой серверов
- соеденением серверов внутри ЦОД
- установкой ОС на сервера и виртуализацией этих серверов
Сама компания при этом будет заниматься:
- дополнительной установкой ОС внутри уже виртуализированных серверов если нужно
- установкой ПО для загрузки и хранения данных
- установкой СУБД
- установкой Кибербеза
- установкой/разработкой прикладного ПО
PaaS - тут для клиента еще все проще, но и плата выше. Оператор занимается:
- постройкой дата-центра
- подведением всего необходимого к нему
- закупкой серверов
- соеденением серверов внутри ЦОД
- установкой ОС на сервера, виртуализацией серверов
- установкой ПО для загрузки и хранения данных
- установкой СУБД
- установкой Кибербеза
Клиент занимается:
- установкой/разработкой прикладного ПО
Ну и SaaS модель - тут компания-клиент просто покупает подписку на какое-то ПО и просто юзает его и не парится насчет того как и где там данные прокручиваются, обрабатываются и т.д.
Сохраняйте, делитесь и не путайте!
Рейтинг облачных провайдеров GPU возглавила МТС Web Services
CNews составил рейтинг провайдеров, предоставляющих удаленный доступ к графическим процессорам (GPU). В список вошли 14 компаний. Всего же, по оценкам аналитиков, на российском рынке активно работают более 20 провайдеров, предоставляющих услуги GPU as a Service.
Ключевые выводы:
• основным драйвером рынка назван спрос на ML и искусственный интеллект;
• первое место рейтинга занял облачный сервис «Виртуальная инфраструктура с GPU» компании МТС Web Services (MWS). Его преимущества — шесть собственных ЦОД, пять из которых сертифицированы по уровню Tier III;
• на втором месте расположилась компания Selectel. У нее четыре ЦОД с уровнем Tier III, в том числе три собственных. Уровень SLA (Service Level Agreement) — 99,98%. Среди других преимуществ — высокопроизводительные процессоры, широкий набор сервисов в облаке с GPU;
• третье место заняла платформа «Т1 Облако». Компания позволяет выбирать как проприетарную платформу виртуализации Hyper-V, так и решения с открытым кодом, такие как OpenStack и KVM. Поставщик арендует два ЦОД с сертификатами Tier III.
Изучить рейтинг →
#облачные_вычисления#IaaS#PaaS
#репорт#ИТ#IaaS#PaaS
Ну и собственно сам прогноз рынков IaaS и PaaS
Тут важно отметить, что по факту стоимость услуги IaaS и PaaS является производной от стоимости закупаемого аппаратного обеспечение и инфраструктурного ПО. Но неправильно говорить что IaaS и PaaS это сумма рынка серверов, СХД, ОС, СУБД и других рынков.
Объемы рынков серверов, СХД, ОС, СУБД и других это сумма проданных серверов/лицензий в течение периода (новых и старых) и услуги по их тех. поддержке и апгрейду.
А вот объем рынка IaaS и PaaS это стоимость проданных подписок/объем уплаченных платежей по договорам.
#репорт#ИТ#IaaS#PaaS
Но да ладно. За неимением лучшего, будет пользоваться данными iKS Consulting.
Тут в отчете их можете увидеть текущие и исторические объемы рынков, динамику и рыночные доли топ-20 игроков на рынках IaaS и PaaS.
https://survey.iksconsulting.ru/page59801703.html
Я скорее хочу дополнить их отчет тем, что из IaaS надо вычесть наверное 10-15% - это будет услуга Bare Metal, на которой кстати говоря специализируется Selectel (56% выручки 2024 года).
Ну и хочу дать прогноз свой.
Прогноз как и предыдущие базируется на
1) Пунктах, которые я описывал здесь
https://t.me/zzz_NonameResearch/876
2) На прогнозе рынка аппаратного обеспечения для ЦОД (ведь чем больше серверов для обработки данных покупается, тем больше будет и IaaS+PaaS рынок
https://t.me/zzz_NonameResearch/867
3) Паттерне перехода от собственных ЦОД к гибридным вариантам или на полное обеспечение стороннего провайдера
И если первые 2 пункта уже были расписаны, то третьему пункту окажу отдельное внимание.
Когда вы пользуетесь услугами облачных провайдеров и не заебываетесь по собственному ЦОДу, то вы избавляете себя от необходимости:
1) Строить ЦОД и тратить много денег на non-core CAPEX
2) Закупать сервера, обновлять их и чинить их и встраивать их в инжереные системы ЦОДа и тратить много денег на non-core CAPEX и OPEX
3) Нанимать ИТшников и инженеров, справляться с их текучкой, платить им ЗП и тратить много денег на non-core OPEX
4) Масштабировать ЦОД или строить новый по мере развития бизнеса
Именно поэтому модель подписки на услуги облачных провайдеров так прижилась и только набирает популярность. Есть еще много пространства для дальнейшего развития IaaS и PaaS рынка. Смотрите график ниже
#репорт#ИТ#IaaS#PaaS
Я кстати не до конца понимаю почему разделяют так коммерческие ЦОДы и облачных провайдеров, ведь как только коммерческий ЦОД применяет виртуализацию для формирования облака для клиента - он по сути становится облачный провайдером.
Или если облачный провайдер/гиперскейлер позволил клиенту разместить в своем ЦОД свои сервера и дальше накатывать на них ИТ-инфраструктуру самостоятельно то он просто сделал Bare Metal услугу и по сути коммерческии ЦОДом.
Наверное тут каждый дрочит как он хочет, но как я понял более понтово быть облачным провайдером/гиперскейлером, так как они предоставляют клиенту более маржинальные и технологичные услуги. Соответственно они и оцениваются дороже. Именно поэтому какой-нибудь Селектел базарит что он облачный провайдер, хотя по факту его выручка в большей степени формируется за счет Bare Metal, поэтому как бы Селектел не хотел быть облачным провайдером он по факту являются обычным коммерческим ЦОДом и не более, и Ростелеком кстати туда же. А вот Яндекс и Сбер (через Cloud.ru) наоборот в большей степени облачные провайдеры, так как основная выручка поступает от продажи подписки на сформированную облачную инфраструктуру.
В общем, что хочу донести в этом сообщении:
У нас по рынку РФ единственный нормальный публичный отчет по IaaS и PaaS делает iKS Consulting. В мире есть основной ресерчер признанный - IDC.
IDC давно существует и у него есть общепризнанная классификация IT рынков. Вот согласно ей в рынок IaaS входят только те услуги, которые начинаются с "облачной инфраструктуры" на моей матрице, в сообщении выше.
А вот iKS Consulting в своем репорте в IaaS включает помимо облачной инфраструктуры еще и Bare Metall услуги (~10% рынка), хотя они по факту ниже рангом и стоят рядом с коллокацией по своей сути.
Я не знаю зачем они так сделали. В мире есть отдельно рынок IaaS, отдельно рынок Bare Metal и отдельно рынок коллокации. Может iKS Consulting объединили так, потому что у нас размеры рынков этих нга момент начала анализа были слишком малы чтобы их делить. Но тогда не совсем понятно, почему коллокаций не входит в рынок IaaS по iKS Consulting. На мой личный взгляд, отчасти это могло быть сделано для того, чтобы РТК ЦОДы и Селектел, которые часто ссылаются на iKS Consulting в рамках IPO могли говорить что они облачный провайдер и они присутствуют активно на рынке IaaS. Хотя по факту и РТК ЦОДы и Селектел выручку в основном получают от банальных и низкоиерархичных по своей технологии услуг Коллокации и Bare Metal