Загрузка...

Python. TKinter or PyQt5?

Thread in Python created by mercemary Jan 19, 2026. 316 views

  1. mercemary
    mercemary Topic starter Jan 19, 2026 6 Jul 2, 2023
    хочу написать gui для своего приложения, немного разобрался с ткинтером, голова кипит дичайше, ща прочитал что он немного устарел уже, глаз упал на pyqt. Что из этого лучше использовать?
    btw пишу через классы
     
  2. ЛГБТ
    На PyQt6 делай, он актуальный
     
    1. mercemary Topic starter
      avatarЛГБТ, окей спс, еле уроки на русском нашел
    2. mercemary Topic starter
      avatarЛГБТ, что насчет flet думаешь?
    3. tayz3r
      avatarmercemary, Flet удобен если нужно на скорую руку и что-то не сильно сложное так как является веб интерфейсом. А если ты собираешься что-то большое делать, то советую PyQt6. А вообще попробуй PyQt + QML, очень классные анимации и в целом что угодно можно сделать.
  3. AS7RID
    AS7RID Jan 19, 2026 Первоклассный пушистик 17,648 Jun 11, 2019
    Из этих двух pyqt/pyside. Qt более детерминирован так сказать, там создание гуишки удобнее, ибо ты сам прописываешь абсолютно все. Минус в том, что это синхронное гуи, т.е делать асинк проги на них не очень удобно, нужно хуярить их в отдельном потоке, чтобы во время работы у тебя гуи не зависало в 0

    Если больше шаришь за веб верстку, то можешь юзать dearpygui, eel и им подобные (Полу насерск, но тоже иногда вариант). В qt тоже можно "веб верстку" сделать, но это менее удобно
     
    1. View previous comments (5)
    2. AS7RID
      avatarkekch127, Ема, я о нем не знал кстати. Я свою гуишку для wplace делал на увынском pyqt6, а у него не имплементирован QtAsyncio (плюсик в копилку pyside), я как ранее говорил костылил через лямбду и запуск корутин в другом потоке через asyncio run. Как же моя костыльная жизнь изменилась бы, если бы я выбрал pyside... :sadge: Ну получается pyside все-таки можно назвать асинхронным и если бы вайбкодеру выше не было бы похуй, то он мог бы сейчас получить рукопожатие, акт мастурбации от меня и спонс 500р :roflanebalo:
      Насчет хуевости хз, я потрогал и вроде норм, мне супер нравится, я кончил, пока писал тестовый скрипт, можешь сам кайфануть
      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
    3. kekch127
      avatarAS7RID, в любом случае нада кидать через лямбду шоб запустилось, но вот у меня было высоконагруженный интерфейс, и не обновлялось все как надо или иногда ваще фризило интерфейс (хотя может я просто еблан :colobok_crazy:)
    4. AS7RID
      avatarkekch127, Ну тут лямбда есть, чтобы действие в коннекте запускалость строго при нажатии кнопки, а не сразу в момент инициализации.
      Снизу закомменчен app.exec(), можешь его раскомментить и трайнуть так. Прикол в том, что QtAsyncio запускает гуи в асинхронной лупе, из-за чего у нас работает создание тасков и прочая асинхронная поебота, при app.exec() тебе бы ****ало ошибку, что эвент лупа не запущена, в этом вся разница. Я кончил реально короче
      Если у тебя фризил интерфейс, значит где-то у тебя затесалась либо синхронная задача с бесполезным ожиданием, либо супер сложная математика, которая долго вычисляется (У меня моей синхронной задачей был numpy, в момент сравнения массивов и использований масок пару секунд фризы могли быть, при условии, если массивы огромные), такое, как правило, в отдельном потоке надо делать
    5. View the next comments (1)
  4. Stomi
    Stomi Jan 19, 2026 138 Feb 24, 2022
    pyside6 сразу используй
     
  5. encer
    encer Jan 19, 2026 74 Jul 19, 2022
    Flet - прикольная штука, да и освоить легче чем qt. Проблема только в том, что flet это огромная обертка над flutter и у тебя по факту мало контроля над приложением, зависимостями и т.д. Из-за этого ты ограничен тем, что разрабы для тебя любезно написали("обернули"), ну в большинстве кейсов этого хватит.

    + Будет сложно использовать ИИ для написания кода(если ты сам не разберешься в доке), ибо же он будет путать его с flutter и выдавать нерабочий код.

    Поэтому можешь попробовать flet, если нужно написать быстро и получить красивый визуал.
     
  6. modafinil
    Qt либы слишком пиздатые
    dearpygui также не плохой
     
  7. mercemary
    mercemary Topic starter Jan 20, 2026 6 Jul 2, 2023
    нихуя вы написали парни, всем от души за советы :love2:
     
  8. сатошик
    Кт более красивым будет, нежели ткинтер, переписывал гуишку на него и это было как небо и земля по красоте
     
Loading...