UFO ET IT

PyQt5를위한 튜토리얼이 있습니까?

ufoet 2020. 11. 27. 21:48
반응형

PyQt5를위한 튜토리얼이 있습니까?


PyQt5 튜토리얼을 찾고 있습니다. 튜토리얼없이 처음으로 Python으로 GUI 개발을 시작하는 것은 다소 복잡합니다.

난 단지 지금까지 일부 PyQt4 자습서를 발견, 예를 들면, Qt5에 QT4에서 사실을 변경하지 뭔가 이후 SIGNALSLOTQt5에서 더 이상 지원, PyQt5 특정 자습서를 가지고 좋은 것입니다.

누군가 PyQt5로 GUI 개발을 시작하는 방법에 대한 자습서를 제공 할 수 있습니까?


PyQt5의 깊숙한 곳으로의 여행이 계속됨에 따라 내가 찾은 더 빛나는 보물 중 일부로이 답변을 계속 업데이트 할 것입니다.

즉, 나는 지금 PyQt5에 대한 빠른 소개에서 "거친 초안"찌르기를 취하고 있습니다. 또한 유용한 리소스에 대한 링크를 제공 할 것입니다. 저도이 프레임 워크를 처음 접하고 있으며,이 프레임 워크를 사용하기에 좋은 전략이라고 생각하는 것에 대해 자세히 설명 할 것입니다. 다른 좋은 전략이있을 수 있으므로 추가 할 것이 있으면 의견을 남겨주세요. 이것은 매우 진행중인 작업입니다.


전략

다른 답변에서 제안한 예제 코드에서 많은 것을 배웠지 만 예제가 도움이되지 않는 것은 PyQt5의 깊은 마법입니다. 많은 마법이있는 프레임 워크 (PyQt5, Django, SQLAlchemy, ...)는 엄청난 양의 고된 작업이 당신에게서 멀어지기 때문에 훌륭합니다. 반대로 도대체 무슨 일이 일어나고 있는지, 또는 당신이 그것에 대해 무엇을해야하는지가 항상 명확하지는 않습니다.

다행히 옵션이있는 것 같습니다.

  • QtDesigner : 키보드에 불이 붙는 당시에는 설치 패키지에서 호출되는 GUI-Builder가 있습니다. 이것이 생성하는 코드를 보면 (아마도 커뮤니티 버전에서만?) 이것이 만병 통치약 아닌 이유를 알 있습니다.

  • QML : 만병 통치약의 또 다른 후보 : 형식화 된 JSON에서 선언적 GUI 구축. Yum.

  • Qt Quick : QML을위한 프레임 워크. 이 시점에서 감질 나게 쉬운 것처럼 보일지 모르지만 아직이 물건에 푹 빠지지는 마십시오. 항상 손으로 배우는 것 같습니다.

  • Model-View Framework (1) : Model-View (MVC가 아님)는 모듈화를 제공하기 위해 프레젠테이션 / 상호 작용을 처리하는 코드와 데이터를 관리하는 코드를 분리합니다.

PyQt5의 코딩은 Model-View 디자인 패턴 을 구현하는 클래스 집합을 사용하여 크게 단순화됩니다 . Model-View는 Controller가 View와 재결합 된 Model-View-Controller (MVC)의 진화입니다. 그들은 이상한 동료처럼 보이지만, 대부분의 프로그램 논리 사용자 나 데이터를 다루고 있습니다. 적어도 성층권 수준에서는 어떤 의미가있는 것 같습니다.

조감도에서 :

아키텍처

모델-뷰-컨트롤러

널리 사용되는이 디자인 패턴은 애플리케이션을 3 개의 레이어로 분리합니다.

  1. 모델 ~> 데이터를 캡슐화합니다. 기본 데이터의 변경 사항을 View 및 Controller에 알립니다. 이로 인해 출력 표시 또는 사용 가능한 명령이 각각 업데이트됩니다.
  2. 보기 ~> 모델에서 사용자에게 관련 출력을 표시합니다.
  3. 컨트롤러 ~> 사용자 상호 작용을 캡슐화하고 관련 이벤트를 모델 및 뷰에 알립니다.

모델보기

  • 그래픽 뷰 프레임 워크 (1) ~> 위젯을 포함하기위한 프록시 클래스를 포함하여 QGraphicsScene 내부의 모든 것 (포함 된 QWidgets 등)을 QGraphicsItem (또는 그 파생물)으로 나타냅니다. 항목은 고도로 최적화되어 있으며 OpenGL 지원을 통합하는 것은 한 줄로 표시됩니다.

이 디자인 패턴은 컨트롤러를 뷰 안에 넣습니다. 이런 식으로 뷰는 사용자의 상호 작용 전체를 처리 할 수 ​​있습니다. 구체적으로는 신호 및 슬롯 메커니즘입니다.

사용자 상호 작용 관리

콜백

신호 및 슬롯

..... ** 죄송합니다. 지금 서명해야합니다. 나는 이것을 계속 추가하기 위해 돌아올 것이다. **

실제 예

itemviews/editabletreemodel예를 들어, 예제 에서 트리 뷰를 가져온 다음 예제에서 파일 시스템 모델 ( QFileSystemModel) 로 스왑 itemviews/dirview하면 디렉토리 트리의 전체 (작동) 뷰를 얻을 수 있습니다. 꽤 멋져요.

따라서 editabletreemodel 예제에서 코드를 가져옵니다.

headers = ("Title", "Description")

file = QFile(':/default.txt')
file.open(QIODevice.ReadOnly)
model = TreeModel(headers, file.readAll())
file.close()

self.view.setModel(model)

... dirview에서 모델을 교체합니다.

model = QFileSystemModel()
model.setRootPath('')
self.view.setModel(model)

... 그냥 작동합니다. 놀랄 만한.

The next step (in my case) (*I think) is implementing a custom model which I will then use several views concurrently, but I don't know if that kinda thing fits your use case.

Resources

Here are some gems I found on my travels. Hopefully they help you on yours.

This is a tutorial on Model-View for Qt5.(1) It is a very detailed document from the official Qt5 docs. A good deal of useful documentation can be found at the Qt5 site. Keep in mind, it's for Qt5 (the C++ library), but the difference is trivial to read through (and the PyQt5 official docs point there anyway).

This PDF contains a quick high-level to PyQt4's Model-View framework. Note that is it for PyQt4 (not PyQt5), but it is actually for Python (as opposed to C++), and I found it very quickly taught me a lot.

I am just starting to play with the Graphics View, and am finding this tutorial on the Graphics View Framework very helpful. This is the same View that is used in the qtdemo example code to generate some slick effects. I'll be updating this in a bit.

This is a complete list of all of the Qt5 Modules.

This is a complete list of all of the Qt5 Classes.

This is a complete list of all functions in the Qt5 API.

As katsh pointed out in another answer's comments, here is a link to the example code for PyQt5.2.1 on GitHub

Additionally, a copy of the example code comes packaged with your distribution and can be found at:

%PYTHON_HOME%\Lib\site-packages\PyQt5\examples

If you're using PyDev (Eclipse), you can run examples by simply right-clicking an example's main module file in PyDev Package Explorer or Navigator =:> Run As =:> Python Run

The best one, in my (not so) humble opinion, is:

%PYTHON_HOME%\Lib\site-packages\PyQt5\examples\qtdemo\qtdemo.py

Among my current projects, I'm in the process of reverse engineering this example. If you check it out, you'll see why. To be continued.. ;)

Enjoy!


Been looking for PyQt5 tutorials for some time? Look no further! You won't find many around the internet.

Not really tutorials, but pretty self-explanatory basic scripts under the following path:

/python/lib/site-packages/PyQt5/examples

you will find about 100 examples in 30 folders ranging from beginner to advanced, covering basic windows, menus, tabs, layouts, network, OpenGL, etc.


Have a look at http://www.thehackeruniversity.com/2014/01/23/pyqt5-beginner-tutorial/ This is a newbie friendly tutorial

참고URL : https://stackoverflow.com/questions/20996193/is-there-a-tutorial-specifically-for-pyqt5

반응형