Python + Qt # 1의 첫 단계

이 튜토리얼은 Python을 프로그래밍 언어로 사용하여 QT 프레임 워크 사용을 가르치는 데 초점을 맞추고 있습니다.이를 위해 PySide와 PyQt를 모두 사용할 수 있지만이 튜토리얼의 작성자가 LGPL PySide 라이선스를 더 좋아하기 때문에이 튜토리얼에서는 PySide를 사용합니다. GPL 또는 PyQt Commercial보다.

먼저 ... 파이썬이란 무엇입니까?

Wikipedia에 따르면 :

"Python은 매우 깔끔한 구문을 강조하고 읽기 쉬운 코드를 선호하는 매우 높은 수준의 해석 프로그래밍 언어입니다."

Python은 멀티 패드 라디 그 프로그래밍 언어이므로 다양한 Python 프로그래밍 패러다임을 지원합니다. 예를 들어 OOP (Object Oriented Programming), 명령형 프로그래밍 (Structured) 및 더 적은 범위의 기능적 프로그래밍을 지원합니다.

만?

아니요, 또한 동적 타이핑 언어입니다. 즉, 파이썬을 사용하면 프로그램을 실행하는 동안 동일한 변수에 다른 유형의 값을 할당 할 수 있습니다. 일부는 이점으로, 다른 일부는 단점으로 간주합니다. .

앞서 언급 한 것 외에도 Python을 사용하면 웹 환경과 웹 데스크톱 모두에서 프로그래밍 할 수 있으며 (다른 많은 경우와 마찬가지로) 크로스 플랫폼도 가능하며 현재 Gnu / Linux, Windows, Mac osx, Android를 지원합니다. 수정을 위해 언급해야 함).

QT 란 무엇입니까?

QT는 원래 Nokia에서 개발 한 멀티 플랫폼 프레임 워크로 나중에 Digia에 판매되어 애플리케이션 개발에 사용되며 C ++로 작성되었지만 Bindings (이 경우 PySide 또는 PyQt)

PySide와 PyQt의 차이점

주로

  • 라이선스, PySide는 LGPL 조건에 따라 라이선스가 부여되고 PyQT는 GPL 조건 또는 상업용 라이선스에 따라 사용되므로 폐쇄 된 응용 프로그램을 만드는 경우 비용을 지불해야합니다.
  • PySide는 Nokia에서, PyQt는 RiverBank에서 만들었습니다.
  • PySide는 각 QT 객체의 QString을 사용할 때마다 STR을 사용하는 수고를 덜어줍니다.

전체 변경 사항을 자세히 설명 할 수 있습니다. 여기에.

준비 :

Qt를 설치합니다.

Kde와 함께 배포판이있는 경우 필요한 것을 이미 가지고 있어야합니다.

sudo apt-get 설치 qt4-dev-tools

PySide를 설치합니다.

sudo apt-get install pyside pyside-tools

첫 번째 Python + QT 애플리케이션

우리가 가장 좋아하는 텍스트 편집기로 이동하여 sublime-text2를 설치하는 것이 좋지만 원하는 것을 사용할 수 있으며 다음 코드를 입력하고 항상 ".py"확장자로 끝나는 원하는 이름으로 저장합니다. app1.py로 저장하겠습니다.

3

코드 참조

다음과 같이 콘솔에서 실행합니다.

python app1.py

이 창이 나타납니다.

2

그게 다예요, 왜냐하면 전에 콘솔 만 가지고 있었다면 뭐에 대해 불평하는 거죠? 뭘 기대 했어, Erp? 어서 뭔가 시작합니다.

이제 코드를 설명하겠습니다.

from PySide.QtGui import *

from sys import exit, argv

여기에서 PySide 실행에 필요한 모듈을 가져옵니다.

app = QApplication(argv)

app이라는 이름으로 Qapplication 인스턴스를 만듭니다.

window = Qwidget()

QWidget ()의 인스턴스를 만듭니다.

window.setWindowTitle("Primera App PySide")

우리는 Qwidget의 제목을 "설정"하는 매개 변수로 문자열을받는 setWindowTitle 메소드를 실행합니다.

window.show()

우리는 우리의 창을 보여줍니다

exit(app.exec_())

마지막으로 우리는 QApplication ()의 무한 실행주기를 실행합니다.

감사합니다

여기에서 나를 따라와 도움이 된 사람들에게 감사합니다. 다음 튜토리얼에서는 QT Designer로 창을 디자인하고 프로젝트로 가져 오는 방법을 설명합니다.

또한 포럼에 링크를 추가합니다. desde linux 여기에는 다음과 같은 다양한 용어가 포함된 작은 Python 튜토리얼 및 가이드 라이브러리가 포함된 작은 테마가 있습니다.

기본 Python 자습서

Wx파이썬

PyQt 및 PySide

장고

웹투파이

파이썬으로 과학적인 프로그래밍.

그리고 더 많은.

포럼 링크

나는 그들이 당신에게 봉사하기를 바랍니다. 작별 인사를합니다. 언제나이 멋진 커뮤니티에 속하게되어 기쁩니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   @ trust17

    게시물 주셔서 감사합니다!

  2.   아누비스

    2 가지 :

    1. Qt는 원래 Nokia에서 개발 한 것이 아니라 나중에 Nokia에서 인수 한 Trolltech에서 개발했습니다. 후자는 Qt를 Digia에 매각했습니다.
    2. 첫 번째 애플리케이션 예제의 이미지가 코드와 일치하지 않습니다.

    튜토리얼 주셔서 감사합니다. 따라갈 게요 🙂

    1.    f3niX

      당신 말이 맞아요. 그리고 두 번째로 옳은 것은 수업을 사용하지 않고 더 쉽게 만들 수 있도록 변경했으며 수정, 초보자 오류를 놓쳤다는 것입니다. 일부 편집자가 승인하도록 이미 수정 사항을 전달했습니다.

    2.    f3niX

      수정할 수 없으며 일부 편집자에게 맡깁니다.

      인사말.

      1.    Nysonv

        수정 된 튜토리얼과 함께 편집자에게 이메일을 보냅니다. 편집자 중 한 명인 @nano의 이메일로 보낼 수 있습니다.
        mailto : nano.world.contact@gmail.com
        이렇게 튜토리얼을 떠나지 마세요
        안부

  3.   독일의

    한 가지 놀랐습니다. 코드에서 "from import *"를 사용하는 이유는 무엇입니까?

    안녕하십니까!

    1.    f3niX

      임포트하는 올바른 방법입니다. 이와 같이 임포트 할 때 임포트하려는 모듈의 특정 클래스를 알려주고 전체 모듈을 호출하지 않습니다.

      인사말.

      1.    독일의

        나는 그런 종류의 혼란을 느낀다. 또한 PEP8에서는 권장되지 않습니다.

        "와일드 카드 가져 오기 (모듈 가져 오기 *에서)는 네임 스페이스에 어떤 이름이 있는지 불명확하게 만들어 독자와 많은 자동화 도구를 혼동시키기 때문에 피해야합니다 ..."

        1.    f3niX

          나는 주로 Ninja-Ide와 같은 전문 코드에 의해 안내되었으며 여기에서 코드를 볼 수 있습니다. https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyPyQt에서도 수행되지만 어떤 방식 으로든 한 양식 또는 다른 양식을 사용하도록 강요하는 것은 없습니다.

          여기에서 StackOverflow에 대한 토론을 볼 수 있습니다.

          http://stackoverflow.com/questions/710551/import-module-or-from-module-import

          거기에서 그들은 각 스타일의 장단점을 언급합니다.

          1.    f3niX

            ok 미안하지만 이해가 안 됐습니다. 각 요소 QApplication, QWidget에 대한 설명을하지 않고 일반화 할 것이기 때문에 한 것뿐입니다.

            오해를 용서하십시오.

          2.    독일의

            아니요, 이해하지 못했거나주의를 기울이지 않았습니다 ... 제 말은«from module import *»를 사용한다는 의미입니다. 즉, StackOverflow 게시물에서«별표»를 의미합니다. ... 그들은 다른 것에 대해 이야기하고 있지만 여전히 강조합니다.

            "두 방법 모두 허용되지만 모듈 가져 오기 *에서 사용하지 마십시오."

            이제 이해 되었습니까?

          3.    펠리페

            독일어가 옳습니다. 해당 가져 오기 모듈에 대해 별표가있는 모든 컨텐츠를 가져 오는 경우 from 모듈 가져 오기의 용도는 무엇입니까? Slds는 좋은 게시물입니다.

          4.    독일의

            아, 이제 이해합니다… 어쨌든 너무 오래 걸리지 마세요. 저는 Python 초보자이기도합니다. 내 블로그에 들르면 내가 PyGObject를 사용하여 Gtk + 3으로 게시물을 작성했음을 알 수 있습니다.

            인사와 감사합니다!

        2.    f3niX

          여기서 나는 im의 사용을 권장하는 스페인어로 Pep8을 떠납니다.
          패키지에서 코드를 가져 오기 위해 상대 가져 오기를 사용하는 것은 매우 바람직하지 않습니다. 모든 가져 오기에 항상 패키지의 절대 경로를 사용하십시오. PEP 328 [7]이 Python 2.5에서 완전히 구현되었으므로 상대적 가져 오기를 사용하는 것은 매우 권장되지 않습니다. 절대 가져 오기는 더 이식 가능하고 일반적으로 더 읽기 쉽습니다.

          모듈에서 클래스를 가져올 때 일반적으로이를 수행하는 것이 옳습니다.
          myclass에서 가져 오기 MyClass
          foo.bar.yourclass에서 YourClass 가져 오기

          안부

          1.    사냥꾼

            이것을 읽으십시오 : http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided

            Alex Martelli (핵심 py 개발자)는 다음과 같은 것을 권장합니다.


            from PyQt4 import QtCore, QtGui

  4.   MSX

    더 많이 원했는데, 2 부 때!?
    인사말 🙂

  5.   엘리오타임3000

    아주 좋은 튜토리얼과 프로그래밍하는 것이 더 편할 수 있습니다.

  6.   사냥꾼

    다음은 처음부터 인터페이스의 예입니다 (QtDesigner를 사용하지 않음).

    https://github.com/xr09/metrocontador

    1.    f3niX

      dhunter 앱은 훌륭합니다. 여기서 우리는 그들이 우리에게 전기를 얼마나 청구하는지조차 모릅니다, 하하 인사.

      1.    사냥꾼

        감사합니다. 개인용으로 만들고 다른 사람들에게 서비스를 제공하는 앱 중 하나입니다. 여기 쿠바에서는 영수증이 요율로 분류되어 알고리즘을 복사하기 쉽습니다.

  7.   호세 엘로이

    나는이 과정을 아주 잘 알고있을 것이다. 저는 오랫동안 크로스 플랫폼 애플리케이션에 관심이 있었고 Python + QT / Pyside 조합이 훌륭한 옵션이라고 생각합니다. 이니셔티브에 대한 인사와 축하

  8.   브라이언 로드리게스

    나는 당신이 말한대로 정확하게 모든 단계를 따랐지만 터미널에서 app1.py 응용 프로그램을 실행하면 Traceback (가장 최근 호출 마지막)을 알려줍니다.
    파일 "app1.py", 1 행,
    PySide.QtGui 가져 오기에서 *
    ImportError : PySide.QtGui라는 모듈이 없습니다. 이게 뭐야?.

    1.    펠리페

      기본 인터프리터로 Python 버전을 사용하고 있지만 해당 버전에 대한 pyside가 설치되어 있지 않기 때문입니다.

      파일 시작 부분에 추가해보십시오.
      #! usr / bin / python3
      그렇지 않으면
      #! usr / bin / python2

      Eclipse를 pydev와 함께 사용하고 인터프리터를 잘 구성하는 것이 좋습니다.
      slds

      1.    펠리페

        #! / usr / bin / python3
        그렇지 않으면
        #! / usr / bin / python2

        1.    f3niX

          PySide는 아직 Python3과 호환되지 않습니다. 이에주의하고, 두 번째로 대화 형 Python 콘솔을 통해 가져 오기를 확인하면 설치 여부를 알 수 있으며 pip도 설치됩니다.

          1.    브라이언 로드리게스

            어떻게 확인합니까?

          2.    f3niX

            콘솔에서 "Python"을 사용합니다. 어쨌든 게시물에 남겨둔 라이브러리에 들어가서 "모든 사람을위한 파이썬"을 다운로드하는 것이 좋습니다. 더 많은 기반이 필요합니다.

            인사와 행운.

          3.    브라이언 로드리게스

            정말 감사합니다. 정말 도움이되었습니다.

          4.    마우리시오 토바 레스

            친구 F3niX를 찾으십시오 .Windows의 python 3.3.2의 경우 32 비트와 64 비트의 바이너리가있는 것 같습니다. 예를 들어 python 3.3.2와 함께 작동합니다. 다른 환경을 설치하는 PyScripter는 python 3을 열면 스크립트가 python 3으로 실행되고 2.7을 열면 2.7로 실행되는 식으로 실행됩니다 (논리적으로 해당 버전의 Python을 설치해야합니다 ... 이해합니다).

            http://qt-project.org/wiki/PySide_Binaries_Windows

            내가 당신을 거기에두고 가십, 어쩌면 다른 사람에게 도움이 될 것입니다 😀

      2.    브라이언 로드리게스

        같은 오류가 발생합니다.

        1.    독일의

          PySide가 설치되어 있습니까?

          1.    브라이언 로드리게스

            설치했습니다.

        2.    펠리페

          그리고 PyQT4로 설치하고 PyQT4 또는 PyQt4의 PySide 라인을 변경하고 실행하도록하십시오. 조조. 일식을 사용하십시오. 운.

          1.    브라이언 로드리게스

            어떻게하나요?.

  9.   카리눅스

    대단히 감사합니다 !!! 두 번째 장을 기다리고

    1.    f3niX

      이번 금요일에 나는 그것을 발표 할 수 있습니다.

  10.   마우리시오토바레스

    친구 F3nIX 당신의 튜토리얼을 기다리고 있습니다 N ° 2, 3, 4… N hehehe

    나는 이미 PySide와 모든 것을 기다리는 매우 우아한 Linux를 설치했습니다!

    그가 새로운 튜터를 보여 주도록 격려 받았을 때 보자 😀

    1.    f3niX

      실례합니다 친구, 초안이 있지만 일과 공부로 시간을 얻지 못했습니다. 이번 주에 뭔가를 얻을 것을 약속합니다.

      큰 인사

  11.   단테

    안녕하세요, 저는 오랫동안 파이썬을 배우는 데 관심이 있었지만 의심이 있습니다. 내가 원하는 것은 내가 일하는 가업의 정보 프로세스를 약간 개선하기 위해 응용 프로그램을 만드는 것입니다. 나는 Windows를 위해 무언가를하고 싶습니다. 처음에는 Windows를 사용하여 모든 것이 단일 PC에서 작동 할 수 있습니다. 인터넷을 통해 두 대의 컴퓨터가 연결할 데이터베이스에 연결됩니다. 응용 프로그램 GUIing 측면에서 많은 다양성이 있으며 그것은 나를 어지럽게 만듭니다. 현대적이고 매력적인 느낌을주기 위해 무엇을 권장합니까? 통계 그래프를 만들고 보고서를 인쇄하기도하는데,이를 위해 무엇을 사용할 수 있습니까? 건배

  12.   호르헤

    안녕하세요, 매우 좋습니다. 귀하의 게시물입니다. 질문이 있습니다. pyside로 만든 앱을 문제없이 판매 할 수 있습니까?

    1.    f3niX

      글쎄요, 라이센스는 항상 미친 짓이지만, 자유 소프트웨어 라이센스는 당신이 소프트웨어를 팔 수있게 해줍니다. GPL은 당신이 그렇게하도록 강요하지 않는 LGPL과는 달리 코드를 배포하도록 강요합니다.

      어쨌든 저는 라이선스 전문가가 아닙니다.

      인사말.