본문 바로가기

728x90

PyQt GUI

(19)
PyQt GUI (19) 윈도우 아이콘 속성창과 동일한 대화창 만들기 PC에 PC용 카카오톡을 설치하고 바탕화면에 생성되는 카카오톡 아이콘의 속성창을 열었습니다. 왼쪽이 바로 윈도우 기본 속성창 입니다. 오른쪽은 PyQt를 이용하여 최대한 윈도우 속성창에 비슷하게 만든 대화창(QDialog)입니다. 차이가 있긴 하지만, "거의 같다"라고 할 수 있을 정도로 유사한 대화창을 만들었습니다. 이러한 대화창을 만들기 위해서는 기본적으로 동일한 위젯과 레이아웃을 생성하여 배치하는 것도 중요하지만, 위젯과 레이아웃에 다양한 옵션을 설정하여 세세한 부분까지 유사하게 맞추는 작업이 필요합니다. 이번 포스팅에서는 위젯과 레이아웃을 꾸밀 수 있는 설정에 대해서 알아 보도록 하겠습니다. 몇몇 간단한 설정만 해 준다면, 개발을 하려고 하는 벤치마크 프로그램과 매우 유사한 형태의 UI를 만들 수..
PyQt GUI (18) 괜찮은 테마 소개 : qt_material PyQt에서는 별다른 스타일 설정을 하지 않으면, GUI는 회색 혹은 흰색의 색 조합으로 구성 됩니다. 위 이미지는 예전에 만들었던 계산기의 기본 UI 입니다. 흰색, 회색, 조금 더 진한 회색 등으로만 구성 돼 있습니다. GUI와 관련된 10번째 포스팅에서는 회색 UI를 위와 같이 유채색의 UI로 변경하였습니다. 이 포스팅에서는 직접 각 위젯마다 스타일을 정의하고, 각 위젯에다 setStyleSheet 메서드를 통해서 스타일을 설정하였습니다. 이전 포스팅에서 했던것과 같이 모든 GUI의 구성 요소들에다 원하는 스타일을 설정할 수 있지만, 그렇게 하면 (1) 너무 귀찮고, (2) 미적 감각이 없는 경우에는 꾸민 스타일이 이쁘지 않을 수 있다는 문제가 있습니다. (1)의 문제를 해결하기 위해서는 모든 위젯..
PyQt GUI (17) QTreeView를 이용하여 폴더 트리 만들기 + 드래그-앤-드롭 drag-and-drop을 이용하여 파일 이름을 옮기기 이번 포스팅에서는 윈도우 파일 탐색기의 왼쪽 프래임에서 볼 수 있는 폴더 트리를 만들어 보겠습니다. 폴더 트리는 위 탐색기 캡쳐에서 왼쪽 프래임에 있는 것 입니다. 전체 파일/폴더의 구조를 보여줍니다. 이 폴더 트리를 이용하여 파일/폴더의 구조를 파악하거나 파일/폴더를 선택할 수 도 있습니다. 오늘 만들 GUI의 전체 코드는 아래와 같습니다. import sys from PyQt5.QtWidgets import * class QTreeView(QTreeView): def __init__(self): super(QTreeView, self).__init__() def edit(self, index, trigger, event): return False class QLineEdit(QLineEdit): de..
PyQt GUI (16) 테이블 위젯(QTableWidget)으로 표 표시, 수정, 저장하기 많은 데이터를 한 눈에 보기 쉽게 표현하기 위해서는 반드시 표를 사용해야 하는데요, 이번 포스팅에서는 PyQt GUI에서 표와 관련된 위젯을 한 번 사용해 보도록 하겠습니다. 파이썬에서 표 형식의 데이터를 취급하는데 자주 사용되는 Pandas 라이브러리도 함께 사용해 보도록 하겠습니다. 이번 포스팅에서 만들 표가 포함된 QDialog입니다. 레이아웃Layout을 활용하여 위젯들을 원하는 위치에 배치하는 것에 대해서는 지난 포스팅에서 많이 했고, 이번 포스팅에서는 단순히 QTableWidget을 소개하는 것이 목적이기 때문에 위젯의 배치에는 별다른 신경을 쓰지 않았습니다. Load PushButton을 클릭하면, csv형식으로 저장 해 두었던 데이터를 Panda DataFrame의 형태로 불러오고, 이 데..
PyQt GUI (15) 리스트 아이템(list item) 드래그-앤-드롭(drag and drop) 이용하기 드래그-앤-드롭 Drag-and-Drop은 GUI에서 매우 많이 사용되는 기능입니다. 선택 가능한 리스트 중에서, 원하는 아이템을 고르는데 주로 사용됩니다. 이번 포스팅에서는 리스트 아이템에 드래그-앤-드롭 기능을 추가해 보도록 하겠습니다. 리스트 위젯 QListWidget() 2개를 만들었습니다. 첫번째 리스트 위젯은 선택할 수 있는 아이템을 보여주는 리스트 위젯이고, 두번째 리스트 위젯은 선택하는 아이템을 담는 리스트 위젯 입니다. 즉 위에 있는 아이템 리스트를 드래그-앤-드롭하여 아래에 있는 리스트 위젯에 담으려고 하는 것 입니다. 주로 "보기" 중에서 몇 개를 (순서대로) "선택" 하는 경우에 위와 같은 UI를 구성할 것 입니다. 리스트에는 색깔을 나타내는 Red, Green, Blue가 있는데 ..
PyQt GUI (14) 그래프 라이브러리 Matplotlib을 GUI에 포함하기(embeding) Matplotlib은 Python을 이용하여 그래프를 그릴 때 매우 빈번하게 사용하는 라이브러리 입니다. matplotlib을 이용하면 단순한 2차원 그래프부터, 3차원 그래프 뿐 아니라, 막대그래프, 파이그래프 등 거의 원하는 모든 형태의 그래프를 그릴 수 있습니다. Python에는 다양한 그래프 라이브러리가 있지만, matplotlib은 그 중에서도 아주 많이 사용되는 라이브러리이니, 만일 matplotlib을 처음 접하시는 분이라면 아래 포스팅을 읽는 것 보다는 GUI와는 상관 없이 우선 일반적인 python 출력을 통해 matplotlib에서 그래프를 그려 보는 것을 추천합니다. 꼭 GUI 뿐만 아니라 다양한 곳에서 활용도가 매우 높은 라이브러리 이기 때문입니다. (제 블로그의 모든 그래프는 이 ..
PyQt GUI (13) Pyinstaller를 이용하여 PyQt5파이썬 코드를 exe윈도우 실행 파일로 만들기 지난 포스팅까지 2개의 어플리케이션을 만들었습니다. 계산기 : https://studyingrabbit.tistory.com/23?category=957111 PyQt GUI (5) 어플리케이션 만들기 (1) : 100줄만에 계산기 만들기 https://www.youtube.com/watch?v=tnzLtWSAdg0 이번 포스팅에서는 지난 포스팅까지 소개한 내용을 바탕으로 간단한 계산기를 만들어 보도록 하겠습니다. 제목과 같이 약 100줄 정도의 코드만에 계산기를 만드 studyingrabbit.tistory.com 기억력 게임 : https://studyingrabbit.tistory.com/31 PyQt GUI (12) 어플리케이션 만들기 (2) : 기억력 카드 게임 만들기 단순히 Layout이나 W..
PyQt GUI (12) 어플리케이션 만들기 (2) : 기억력 카드 게임 만들기 단순히 Layout이나 Widget의 사용법만을 익히면 좀 지루한 감이 있으니, 배운 내용을 바탕으로 의미있는 GUI 프로그램을 만들어 보는 시간을 갖도록 하겠습니다. 지난번에는 계산기 어플리케이션을 만들었는데, 이번 시간에는 기억력 카드 게임을 만들어 보겠습니다. 이 어플리케이션은 유투브 채널의 시청자님의 요청으로 만들게 되었습니다. 영상을 촬영하고 편집하는데는 시간이 좀 걸리니 우선, 바로 쓸 수 있는 블로그 포스팅 부터 하도록 하겠습니다. 우선, 최종적으로 만든 어플리케이션을 보여드리면서 기억력 카드 게임이 무엇인지, 그리고 프로그램을 어떻게 사용하는지를 설명드리겠습니다. 사용법은 아래와 같습니다. (0) 첫째줄에는 6개의 동물 이미지가 있습니다. 사용자가 사용할 이미지를 준비해 놓고 해당 파일의 ..

728x90