Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 22
PySide

Проблема с атрибутами

14.03.2024, 14:50. Показов 933. Ответов 13

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой, делаю интерфейс с помощью py + pyside2.

Возникла необходимость переноса функционала программы в отдельный файл Function.py.
Ошибка связана с атрибутами, я понимаю что не правильно ссылаюсь на тот или иной класс или атрибут, но не понимаю как исправить. Вложу кусок кода с переносом функции для понимания.

Файл Interface_code.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#############################################################################
####Imports###
from PySide2 import *
import sys,os
#############################################################################
###Import interface file###
from interface_ui import *
from function import *
from default_parameters_interface import *
#############################################################################
###Main class###
class MainWindow(QMainWindow):
    ###Function Class __init###
    def __init__(self): #конструктор класса ExampleApp
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        ##############################################################################
        ###Menu right open \ clouse###
        self.ui.openMenu_btn.clicked.connect(Function.resize_Menu_right)
        ##############################################################################
        ###Show Window###
        self.show()
     #############################################################################
     ###Execute app###
if __name__ == "__main__":
     app_main = QApplication(sys.argv) #создание потока для приложения
     window_main=MainWindow() 
     sys.exit(app_main.exec_()) #завершение потока
Файл Function.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
##############################################################################
####Imports###
from PySide2 import *
import sys,os
##############################################################################
###Import interface file###
from interface_ui import *
from interface_code import *
##############################################################################
###Function###
class Function(QMainWindow):
    ##############################################################################
    ###Resize_menu_right### 
    def resize_Menu_right(self):
        if property.image_menu_left == 0:
            self.ui.openMenu_btn.setIcon(QIcon(r"qrc\arrowhead-thin-outline-to-the-left.png"))
            property.image_menu_left = 1
        else:
            self.ui.openMenu_btn.setIcon(QIcon(r"qrc\right-arrow.png"))
            property.image_menu_left = 0
            Function.clouse_left_menu(self)

Ошибка такая:

Traceback (most recent call last):
File "d:\GUI\function.py", line 20, in resize_Menu_right
self.ui.openMenu_btn.setIcon(QIcon(r"qrc \arrowhead-thin-outline-to-the-left.png"))
AttributeError: 'bool' object has no attribute 'ui'
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.03.2024, 14:50
Ответы с готовыми решениями:

Проблема с атрибутами субформы
Имеется «Главная форма». В нее вложена «Подчиненная форма 1» в виде таблицы, а в нее – «Подчиненная форма 2», тоже в виде таблицы. ...

проблема с атрибутами расшаренной для сети папки
Люди, у меня такой вопрос. Организован домен на windows 2000 server. IP у локальных машим динамические. На серваке есть папка, она...

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

13
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
14.03.2024, 16:47
Ultimaforsan, к сожалению, ты вообще не понимаешь как работают классы. Что такое self?
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
class Function
Конструктор где?
self.ui в данном классе - это что? Где? Откуда?
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
Function.clouse_left_menu(self)
Где в этом классе такая функция?

ЗЫ:
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
clouse
close
0
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 22
14.03.2024, 19:46  [ТС]
Да, сейчас вот изучаю этот вопрос. Self нужен как первый параметр для экземпляра, чтобы при вызове он указал на свой экземпляр в моем случае это класс Function

что такое self.ui - понимаю что ошибка в этом, не понимаю как передать это значение в другой файл не стыкуется в голове.

Есть два файла Main.py - запускает окно - там создан конструктор

Python
1
2
3
4
5
###Function Class __init###
    def __init__(self): 
        QMainWindow.__init__(self)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

Теперь хочу создать файл Function.py и из него иметь возможность управлять и писать функции применимые к главному файлу main.py

Изучи вопрос дочерних классов и родительских, но это не особо пока помогло разобраться.

Где в этом классе такая функция? Function.clouse_left_menu(self) - Понимаю что обращаться к ней без указания класса, а просто self осталось при переносе)

Она идет ниже по коду в классе Function, не привел код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def clouse_left_menu(self):
        #############################################################################
        ###Color other button###
        use_button_default = self.ui.info_btn.setStyleSheet("QPushButton"
                             "{"
                             "background-color : rgba(32, 36, 42, 255);"
                             "}"
                             )
        use_button_default = self.ui.skill_btn.setStyleSheet("QPushButton"
                             "{"
                             "background-color : rgba(32, 36, 42, 255);"
                             "}"
                             )
        use_button_default = self.ui.inventory_btn.setStyleSheet("QPushButton"
                             "{"
                             "background-color : rgba(32, 36, 42, 255);"
                             "}"
                             )
        use_button_default = self.ui.dragon_btn.setStyleSheet("QPushButton"
                             "{"
                             "background-color : rgba(32, 36, 42, 255);"
                             "}"
                             )
        use_button_default = self.ui.shop_btn.setStyleSheet("QPushButton"
                             "{"
                             "background-color : rgba(32, 36, 42, 255);"
                             "}"
                             )
Текстовую ошибку с CLOUSE - поправлю.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.03.2024, 08:17
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
Self нужен как первый параметр для экземпляра, чтобы при вызове он указал на свой экземпляр в моем случае это класс Function
Нет.
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
экземпляр в моем случае это класс Function
Где у тебя создается экземпляр класса Function?

Добавлено через 4 минуты
А вцелом вопрос нужно поставить по другому - зачем ты это делаешь?
1
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 22
15.03.2024, 12:28  [ТС]
Тогда прошу пояснения для чего нужен Self?


Где у тебя создается экземпляр класса Function?
Это я и хочу понять, как мне создать все правильно чтобы повторно подгружать файл ui и обращаться к нему. Так как в документации прочитал что для работы с ui его нужно подгружать повторно при каждом изменении или обращении.

Для чего я это делаю, мне необходимо логику программы, а именно функции, классы с параметрами предметов и тд разделить на множество файлов (такая задача).

например главный файл запуска Main.py, файл функций - function.py, файл параметров персонажа hero.py и тд
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.03.2024, 12:58
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
Тогда прошу пояснения для чего нужен Self?
Тогда придется объяснять всю суть ООП с самого начала.
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
Это я и хочу понять
Если ты действительно хочешь это понять, начни заново изучать главу про ООП, и не лезь пока в гуйню. В двух словах я вряд ли смогу объяснить всю концепцию.
self - это ссылка объекта класса на самого себя. Не на класс, а на конкретно взятый инстанс.
0
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 22
15.03.2024, 13:34  [ТС]
Я все это время и изучаю ООП и примерно понял как классы работают, просто при изучении примеры банально простые.

Два - три класса, один или два расширяют основной, self как первый параметр который ссылается на класс (видно если навести на self на кого он обращается) Проверяется сначала дочерние классы на функции, если нету идут в родительский, это все понятно, кучу примеров разобрал и все работает, но когда пробую применить знания в своей задаче, эти все ссылки усложняться и происходит путаница.

Сейчас я не понимаю, как подгрузить self.ui в мой второй файл с функциями. Function.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
###Import interface file###
from interface_ui import Ui_MainWindow
##############################################################################
###Game_function###
class Game_func(object):
    def __init__(self): #конструктор класса
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        print("UI loaded")    
    ##############################################################################
    ###Resize_menu_right### 
    def resize_Menu_right(self):
        print("complite")
        self.ui.openMenu_btn.setIcon(QIcon(r"qrc\arrowhead-thin-outline-to-the-left.png"))


Когда вставляю все в основной файл main.py (откуда происходит загрузка приложения) все работает.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
###Import interface file###
from interface_ui import Ui_MainWindow
from game_function import Game_func
##############################################################################
###Main class###
class MainWindow(QMainWindow): 
   ###Function Class __init###
    def __init__(self): #конструктор класса
        super(MainWindow, self).__init__() #конструктор класса __init__ чтобы пользоваться атрибутами QMainWindo
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        ##############################################################################
        ###Menu right open \ clouse###
        self.ui.openMenu_btn.clicked.connect(Game_func.resize_Menu_right)
        ##############################################################################
        ###Show Window###
        self.show()  
##############################################################################
###Execute app###
if __name__ == "__main__":
    app_main = QApplication(sys.argv) #создание потока для приложения
    window_main=MainWindow() 
    sys.exit(app_main.exec_()) #завершение потока



Сама функция resize_Menu_right выполняется

Python
1
2
3
def resize_Menu_right(self):
        print("complite")
        self.ui.openMenu_btn.setIcon(QIcon(r"qrc\arrowhead-thin-outline-to-the-left.png")
Но на прохождении строчки self.ui.openMenu_btn.setIcon(QIcon(r"qrc \arrowhead-thin-outline-to-the-left.png")
возникает ошибка с атрибутами, почему так, я не понимаю, где и что я не указал.

Читать и изучать я готов, но все что читаю пока не помогает решить проблему, все примеры которые показаны в изучении у меня работают.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.03.2024, 13:45
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
примерно понял как классы работают
Вот именно, что примерно. Точнее сказать - очень приблизительно.
Вот сходу - класс MainWindow наследуется от QMainWindow. А класс Game_func - от object (кстати, абсолютно бестолковая декларация). Почему?
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
complite
complete
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.03.2024, 14:22
Лучший ответ Сообщение было отмечено Ultimaforsan как решение

Решение

Микропример
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from PyQt5.Qt import *
import sys
 
 
class Widget(QWidget):
    def __init__(self):
        super().__init__()
        self.setFixedSize(200, 200)
        self.lay = QVBoxLayout()
        self.btnstart = QPushButton("Start")
        self.btnstop = QPushButton("Stop")
        self.lay.addWidget(self.btnstart)
        self.lay.addWidget(self.btnstop)
        self.setLayout(self.lay)
 
        self.func = Function(self)   # <<<---------    !!!!!!
 
        self.btnstart.clicked.connect(self.func.click)
        self.btnstop.clicked.connect(self.func.click)
 
 
class Function:
    def __init__(self, obj):
        self.body = obj
 
    def click(self):
        self.body.sender().setStyleSheet("QPushButton{background-color : rgba(32, 136, 42, 255);}")
 
 
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    ui = Widget()
    ui.show()
    sys.exit(app.exec_())
Название: test.gif
Просмотров: 51

Размер: 57.3 Кб
2
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 22
15.03.2024, 20:29  [ТС]
Хорошо, наследование обоих классов я сделал от QMainWindow

Предположим я не делаю окно напрямую, а генерирую его в Qt designer - получаю файл interface.ui - конвертирую в interface_ui.py

Далее делаю главный файл interface_code.py (главный запускатор приложение)

interface_code.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
##############################################################################
####Imports lib###
from PySide2 import QtCore, QtGui, QtWidgets
import sys,os
from interface_ui import *
from game_function import *
 
class MainWindow(QMainWindow): 
    ###Function Class __init###
    def __init__(self): #конструктор класса
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
 
        self.ui.openMenu_btn.clicked.connect(Game_func.resize_Menu_right) # для выполнения действия в другом файле
 
        self.show()
##############################################################################
###Execute app###
if __name__ == "__main__":
    app_main = QApplication(sys.argv) #создание потока для приложения
    window_main=MainWindow() 
    sys.exit(app_main.exec_()) #завершение потока
Вот главный файл запуска приложения, который создает поток и открывает дизайнерскую оболочку из файла interface_ui.py
в котором главным классом является
Python
1
Ui_MainWindow
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(1250, 800)
        MainWindow.setMinimumSize(QSize(1250, 800))
        MainWindow.setMaximumSize(QSize(16777215, 16777215))
        icon = QIcon()
        icon.addFile(u":/ico/dinosaur-egg.png", QSize(), QIcon.Normal, QIcon.Off)
        MainWindow.setWindowIcon(icon)
        self.StileSheet = QWidget(MainWindow)
        self.StileSheet.setObjectName(u"StileSheet")
        self.StileSheet.setStyleSheet(u"/*  Menu */\n"
                                 ...
Окно запускается и работает.
Далее я создаю еще одни файл game_functin.py


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
##############################################################################
####Imports lib###
from PySide2 import QtUiTools, QtCore, QtGui, QtWidgets
import sys,os
##############################################################################
###Game_function###
class Game_func(QMainWindow):
     def __init__(self): # не понимаю нужно ли это в этом файле
         super(Game_func, self).__init__()
         self.ui = Ui_MainWindow()
         self.ui.setupUi(self)
    ##############################################################################
    ###Resize_menu_right### 
    def resize_Menu_right(self):
        print("WORK")
        self.ui.openMenu_btn.setIcon(QIcon(r"qrc\arrowhead-thin-outline-to-the-left.png"))
Далее запускаю приложение из файла interface_code.py и выполняю нажатие на кнопку

Python
1
self.ui.openMenu_btn.clicked.connect(Game_func.resize_Menu_right)
В файле game_function.py выполняется функция
Python
1
2
3
def resize_Menu_right(self):
        print("WORK")
        self.ui.openMenu_btn.setIcon(QIcon(r"qrc\arrowhead-thin-outline-to-the-left.png"))
Выводиться слово WORK и ошибка - функция отработала но с ошибкой

Ошибка:

File "d:\GUI\game_function.py", line 25, in resize_Menu_right
self.ui.openMenu_btn.setIcon(QIcon(r"qrc \arrowhead-thin-outline-to-the-left.png"))
AttributeError: 'bool' object has no attribute 'ui'

Нет атрибута Ui - он его не знает я ему его не передал, вопрос, как передать ему знания об этом.

В главном файле Function_code.py я использовал

Python
1
2
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
Такой подход в файле game_function.py у меня не получился.

В этом и заключается моя проблема, осталось понять как её решить. Что мне указать и куда сослаться.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.03.2024, 21:03
Опять за рыбу деньги...

Цитата Сообщение от Ultimaforsan Посмотреть сообщение
self.ui.openMenu_btn.clicked.connect(Game_func.resize_Menu_right)
Здесь ты пытаешься вызвать метод КЛАССА, а не ОБЪЕКТА этого класса. Это раз.
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
class Game_func(QMainWindow):
     def __init__(self): # не понимаю нужно ли это в этом файле
         super(Game_func, self).__init__()
         self.ui = Ui_MainWindow()
Здесь ты загружаешь гуйню уже в другой класс. Это не та же самая гуйня, которую ты загружал в MainWindow!!! Это два.
Цитата Сообщение от Ultimaforsan Посмотреть сообщение
def resize_Menu_right(self):
        print("WORK")
        self.ui.openMenu_
А этот метод принадлежит ЭКЗЕМПЛЯРУ, и пытается обратиться к полю класса ui, которое принадлежит тоже ЭКЗЕМПЛЯРУ.
Это три.
Ну и в итоге - ты этот экземпляр нигде не создаешь.
Посмотри внимательно на мой пример. Я ж не просто так его написал. Подумай, разберись в нем.
0
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 22
18.03.2024, 10:27  [ТС]
Разобрался, в вашем примере действительно есть подсказка, но пришлось править для своего кода.
Спасибо большое за подсказки и уделённое время.
Ниже выложу код который завелся, т.к. видел много тем и нигде не было ответа, будет тут.
Еще стоит поработать над импортами и сократить их, но это уже друга история.

файл 1 Function_code.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
##############################################################################
###Import interface file###
from interface_ui import *
from game_function import *
##############################################################################
###Main class###
class MainWindow(QMainWindow):
    ###Function Class __init###
    def __init__(self): 
        QMainWindow.__init__(self) 
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.function = Game_func(self)
##############################################################################
        ###Menu right open \ clouse###
        self.ui.openMenu_btn.clicked.connect(self.function.resize_Menu_right)
##############################################################################
        ###Show Window###
        self.show()
##############################################################################
###Execute app###
if __name__ == "__main__":
    app_main = QApplication(sys.argv) #создание потока для приложения
    window_main=MainWindow() 
    sys.exit(app_main.exec_()) #завершение потока

файл 2 game_function.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
##############################################################################
####Imports lib###
from PySide2 import QtUiTools, QtCore, QtGui, QtWidgets
import sys,os
##############################################################################
####Imports Custom Widgets###
from Custom_Widgets import *
##############################################################################
###Import interface file###
from interface_ui import Ui_MainWindow
##############################################################################
###Game_function###
class Game_func(QMainWindow):
    def __init__(self, obj):
        self.body = obj
        ##############################################################################
        ###Game_function###
        self.status_window = 0
        self.image_menu_left = 0 
    ##############################################################################
    ###Resize_menu_right### 
    def resize_Menu_right(self):
        if self.image_menu_left == 0:           
            self.body.ui.openMenu_btn.setIcon(QIcon(r"qrc\arrowhead-thin-outline-to-the-left.png"))
            self.image_menu_left = 1
        else:
            print("clouse")
            self.body.ui.openMenu_btn.setIcon(QIcon(r"qrc\right-arrow.png"))
            self.image_menu_left = 0
##############################################################################
###Execute app###
if __name__ == "__main__":
    app_function = QApplication(sys.argv)
    window_function = Game_func()
    sys.exit(app_function.exec_())
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
18.03.2024, 10:34
0
0 / 0 / 0
Регистрация: 12.11.2018
Сообщений: 22
18.03.2024, 10:40  [ТС]
Осталось при разборке ( а как это работает), это действительно в этом файле не нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2024, 10:40
Помогаю со студенческими работами здесь

Тайлы с атрибутами
Коллеги, нужна помощь, но скорее в алгоритме, нежели в программировании. Дано: Пишу игровой движок, где все графика состоит из сетки,...

Наследование класса с атрибутами
Всем привет. Подскажите как решить проблему Например имеется доменная модель public partial class Employee { ...

iframe - работа с атрибутами
На сайте вставляем iframe, в теге указаны атрибуты. Возможно значение данных тегов, вытащить на сайте на который разместили iframe окно?

Задача с атрибутами и методами
Здравствуйте, помогите разобраться с задачей: у нас есть исходные данные, это 2 дробных числа, положительное и отрицательное. Выполнить...

Xml с двумя атрибутами
case &quot;Производитель&quot;: if($attribute==&quot;Nature Foods&quot;){ continue 3; } ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru