хочу написать gui для своего приложения, немного разобрался с ткинтером, голова кипит дичайше, ща прочитал что он немного устарел уже, глаз упал на pyqt. Что из этого лучше использовать? btw пишу через классы
mercemary, Flet удобен если нужно на скорую руку и что-то не сильно сложное так как является веб интерфейсом. А если ты собираешься что-то большое делать, то советую PyQt6. А вообще попробуй PyQt + QML, очень классные анимации и в целом что угодно можно сделать.
Из этих двух pyqt/pyside. Qt более детерминирован так сказать, там создание гуишки удобнее, ибо ты сам прописываешь абсолютно все. Минус в том, что это синхронное гуи, т.е делать асинк проги на них не очень удобно, нужно хуярить их в отдельном потоке, чтобы во время работы у тебя гуи не зависало в 0 Если больше шаришь за веб верстку, то можешь юзать dearpygui, eel и им подобные (Полу насерск, но тоже иногда вариант). В qt тоже можно "веб верстку" сделать, но это менее удобно
AS7RID, как-то с такой-же проблемой сталкивался. Выкручивался как мог, но все таки что-то да получилось. Исходников наверно не найду, но было что-то в стиле через синглшот -> отправки запроса на сервак FastAPI -> фунция Был еще вариант запуска встроенным QtAcynio[.]run, но как мне помниться он был хуевым)
kekch127, Ема, я о нем не знал кстати. Я свою гуишку для wplace делал на увынском pyqt6, а у него не имплементирован QtAsyncio (плюсик в копилку pyside), я как ранее говорил костылил через лямбду и запуск корутин в другом потоке через asyncio run. Как же моя костыльная жизнь изменилась бы, если бы я выбрал pyside... Ну получается pyside все-таки можно назвать асинхронным и если бы вайбкодеру выше не было бы похуй, то он мог бы сейчас получить рукопожатие, акт мастурбации от меня и спонс 500р Насчет хуевости хз, я потрогал и вроде норм, мне супер нравится, я кончил, пока писал тестовый скрипт, можешь сам кайфануть from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QPushButton, QVBoxLayout, QWidget) import PySide6.QtAsyncio as QtAsyncio import asyncio import random import sys class GUI(QMainWindow): def __init__(self): super().__init__() self.text = QLabel("Python naserchik 1337") button = QPushButton(text="Anal gay sex") button.clicked.connect(lambda: asyncio.create_task(self.set_text(f"Pizda hui zalupa | {random.randrange(1000, 9999)}"))) layout = QVBoxLayout() layout.addWidget(self.text) layout.addWidget(button) cwg = QWidget() self.setCentralWidget(cwg) cwg.setLayout(layout) async def set_text(self, text): await asyncio.sleep(0.5) self.text.setText(text) if __name__ == "__main__": app = QApplication(sys.argv) main_window = GUI() main_window.show() # app.exec() # Sync loop QtAsyncio.run() # Async loop Python from PySide6.QtWidgets import (QApplication, QLabel, QMainWindow, QPushButton, QVBoxLayout, QWidget) import PySide6.QtAsyncio as QtAsyncio import asyncio import random import sys class GUI(QMainWindow): def __init__(self): super().__init__() self.text = QLabel("Python naserchik 1337") button = QPushButton(text="Anal gay sex") button.clicked.connect(lambda: asyncio.create_task(self.set_text(f"Pizda hui zalupa | {random.randrange(1000, 9999)}"))) layout = QVBoxLayout() layout.addWidget(self.text) layout.addWidget(button) cwg = QWidget() self.setCentralWidget(cwg) cwg.setLayout(layout) async def set_text(self, text): await asyncio.sleep(0.5) self.text.setText(text) if __name__ == "__main__": app = QApplication(sys.argv) main_window = GUI() main_window.show() # app.exec() # Sync loop QtAsyncio.run() # Async loop
AS7RID, в любом случае нада кидать через лямбду шоб запустилось, но вот у меня было высоконагруженный интерфейс, и не обновлялось все как надо или иногда ваще фризило интерфейс (хотя может я просто еблан )
Flet - прикольная штука, да и освоить легче чем qt. Проблема только в том, что flet это огромная обертка над flutter и у тебя по факту мало контроля над приложением, зависимостями и т.д. Из-за этого ты ограничен тем, что разрабы для тебя любезно написали("обернули"), ну в большинстве кейсов этого хватит. + Будет сложно использовать ИИ для написания кода(если ты сам не разберешься в доке), ибо же он будет путать его с flutter и выдавать нерабочий код. Поэтому можешь попробовать flet, если нужно написать быстро и получить красивый визуал.
Кт более красивым будет, нежели ткинтер, переписывал гуишку на него и это было как небо и земля по красоте