예제로 배우는 PyQt

예제 중심으로 배우는 PyQt 프로그래밍

예제로 배우는 PyQt 예제 중심으로 배우는 PyQt 프로그래밍

예제 작성 과정 #1 - Qt Designer를 이용하여 폼 제작

Qt Designer를 이용하여 화면을 구성

첫 예제를 작성한 과정을 따라하며 가장 기본적인 것들을 알 수 있을 것이다.

  • Qt Designer를 이용한 폼(Form) 만들기
  • 위젯을 사용한 화면 구성
  • 해당 위젯 속성 편집
  • 실행하기

PyQt를 설치하였다면 윈도우 시작 버튼을 누른 뒤, '모든 프로그램'에서 설치된 PyQt 그룹을 찾을 수 있다.

 

PyQt 그룹내에서 그림과 같이 'Designer' 찾아 를 실행한다.첫 화면으로 어떤 종류의 폼을 만들 것인지 물어보는 창이 아래와 같이 뜬다.  기본적으로 제공하는 Templet 중, 여기에서는 작은 빈창을 기본적으로 주는 'Dialog without Buttons' 를 선택하고 아래 생성 버튼을 누르자.

 

아래와 같은 빈 화면이 덩그러니 뜰 것이다. 이런 비주얼 툴을 사용하여 화면을 구성하는 것은 오래전부터 몇 몇 개발툴에서 지원을 해주어 익숙하며 당연시 하게 사용하고 있지만, 비주얼 툴을 사용하지 않는 환경에서 창을 하나 만들고 설정하는 시간은 결코 만만치가 않았다. 사실 PyQt도 Designer를 사용하지 않으면 많은 설정을 일일이 코드로 작성을 해주어야 한다. 어쨌든 우리는 쉽게 아래와 같은 작은 폼 하나를 생성했다.

 

이제 생성된 폼 위에 우리가 원하는 위젯(컴포넌트)라 불리는 요소들을 배치하여 사용할 수 있게 해보자. Qt에서 기본적으로 지원 되는 위젯은 우리가 흔히 보고 사용했던 것들이라 언떤 용도로 쓰는지 어렵지 않게 알 수 있을 것이다.

 

기본적인 위젯도구 위치를 기준으로 Qt Designer 좌측 패널에 위젯들이 모여 있으며, 위젯을 폼 위에 배치하기 위해서 해당 위젯을 끌어다가 원하는 곳에 놓아준다. 여기서 우리는 라벨이라고 불리우는 위젯을 폼 위에 배치해보자.

Display Widgets에 있는 Label을 마우스로 끌어서 적당한 곳에 배치한다.

 

라벨의 클릭했을때 보이는 각 점들을 이용하여 라벨위젯이 가지는 크기를 변경할 수 있다.

 

벨을 중앙에 정확히 배치하기 위해선 라벨위젯을 마우스로 끌어 정확히 맞추는 방법도 있겠지만 레이아웃위젯(Layout Widget)을 이용하여 손쉽게 해보자.  

  1. 폼의 빈곳, 정확히는 다른 위젯이 아닌 폼위젯(Form Widget)을 클릭하면 레이아웃 아이콘이 활성화된다.
  2. 수직배치 아이콘을 클릭하게 되면 폼위에 있는 위젯의 현재 크기 값은 무시되고 화면에 꽉 차게 들어간다.   

라벨을 위치시켰으니 이제는 라벨의 텍스트를 변경하고, 텍스트를 중앙 정렬해보자.

  • 일단 선택된 위젯, 라벨위젯이 맞는지를 속성 값을 보고 확인한다.
  • 원하는 폰트로 변경해 본다.
  • 마지막 상속단인 QLabel 에서 텍스트와 정렬 값을 변경한다.
    • text : 현재 'TextLabel' 이라 적힌 값을 'Hello World' 등으로 변경
    • align : 왼쪽정렬을 가운데 정렬로 변경

 

여기까지 진행이 되었으면 아래와 같이 Hello World! 를 보여주고 있는 윈도우창을 하나 볼 수 있게 된다.

  • 실행되었을 경우의 화면을 미리 볼 수 있다.  
    • Ctrl + R : 미리보기

지금까지의 작업을 저장하면 ui 라는 확장자를 가진 XML 형식의 파일을 만들 수 있다.

  • 파일을 원하는곳에 디렉토리를 만들어 저장한다.

댓글

댓글 본문
버전 관리
임덕규
현재 버전
선택 버전
graphittie 자세히 보기