해상도마다 달라지는 프로그램 크기 Pyqt를 이용해 프로그램을 종종 만드는데요. 컴퓨터마다 해상도가 달라서 내 컴퓨터에는 괜찮게 나오는데 다른 컴퓨터에 적용시키면 창 크기가 달라지는 걸 볼 수 있습니다. 다만, 창 크기만 달라질 뿐 안에 있는 위젯의 크기는 달라지지 않습니다. 해결방법 코드로 하기 직접 코딩으로 한다면 QgridLayout을 사용하면 됩니다. QgridLayout은 그리드 내에 있는 위젯을 확장 또는 축소하여 창의 크기에 맞게 배치하는 레이아웃 매니저로 창의 크기가 변경되면 위젯도 동적으로 크기가 조정되어 창의 크기게 맞게 정렬됩니다. 다음 예제는 버튼 4개를 만들어 GridLayout을 적용한 예제입니다. import sys from PyQt5.QtWidgets import QAppli..
문서를 주로 PDF 형식으로 주고받는데 PDF는 수정이 불가합니다. 하지만 수정이 불가능한 PDF 파일의 내용은 가져올 수 있습니다. 사실 워드에 쓰면 되는 것인데 파이썬을 쓰면 이런 일을 조금이나마 줄일 수 있을 것 같습니다. PDF 읽고 추출하기 PDF 파일을 읽고 데이터를 추출하기 위해 파이썬에서는 PyPDF2, pdfminer.six, textract 등의 라이브러리를 활용할 수 있습니다. 이러한 라이브러리들은 PDF 파일을 열어서 내용을 읽고 특정한 텍스트나 이미지 데이터를 추출할 수 있는 기능을 제공합니다. 파이썬 코드를 사용하여 PDF 파일을 열고 원하는 데이터를 추출하는 작업은 데이터 분석, 텍스트 처리, 문서 요약 등 다양한 분야에서 유용하게 활용될 수 있습니다. PyPDF2 설치 pyp..
pyqt로 파일 불러오기 창이 나오게 하는 방법입니다. 개인적으로 프로그램 내에서 파일 불러오거나 폴더를 지정할 때 편해서 자주 쓰게 되는 기능입니다. 파일선택창 간단하게 pushbutton을 누르면 파일선택창이나 폴더선택창이 나오도록 하겠습니다. import sys from PyQt5.QtWidgets import * class MyWindow(QWidget): def __init__(self): super().__init__() self.setupUI() def setupUI(self): #레이아웃만들기 self.setGeometry(200,150,300,300) self.pushButton= QPushButton('Open file') self.pushButton.clicked.connect(sel..
I. pyinstaller 소개 파이썬은 간단하고 직관적인 문법으로 인해 다양한 분야에서 사용되고 있습니다. 하지만 파이썬은 실행 파일이 아닌 소스 코드 형태로 제공되기 때문에, 사용자는 파이썬 인터프리터를 미리 설치해야만 해당 코드를 실행할 수 있습니다. 이는 일반 사용자가 접근하기 쉽지 않은 점입니다. 이러한 문제를 해결하기 위해 pyinstaller가 개발되었습니다. pyinstaller는 파이썬 코드를 실행 파일 형태로 패키징하여 사용자가 별도의 파이썬 인터프리터 없이도 해당 프로그램을 실행할 수 있도록 합니다. 이를 통해 파이썬 프로그램의 배포와 실행이 쉬워져 파이썬을 이용한 소프트웨어 개발의 생산성을 높일 수 있습니다. 또한 pyinstaller는 다양한 운영체제와 환경에서 동작하는 실행 파일..
파이썬에서 pyinstaller로 exe 파일을 만들었습니다만 각종 옵션을 넣는 코드를 직접 알아야해서 불편함이 많았는데 이번에 auto-py-to-exe라는 모듈이 나왔습니다. 제 생각엔 pyinstaller의 옵션을 gui로 표현해놓은 하나의 프로그램을 만든 것 같습니다. 아시다시피 파이썬은 아직 불완전한 요소가 많기 때문에 exe는 C로 만드는게 더 낫지만 파이썬도 개선하다보면 안전하고 간편하게 exe를 만드는 날이 오지 않을까 싶습니다. 설치 auto-py-to-exe도 하나의 모듈이라서 pip으로 설치를 합니다. cmd에서 pip으로 라이브러리 설치하듯이 설치합니다. pip install auto-py-to-exe 설치가 끝난 후 auto-py-to-exe를 바로 실행시킬 수 있습니다. 가이드 ..
이것저것 하다보니 글이 이리갔다 저리갔다 하고 있습니다만 그만큼 작업을 하면서 배우다보니 바삐 돌아가는 것 같습니다. 그래도 글이 다 모이면 순서를 갖출 수 있지 않을까 싶습니다. Qt 는 GUI 프로그래밍을 할 때 쓰는 라이브러리인데요. 보통 C에서 썼었던것같은데 이게 파이썬에서도 가능합니다. Pyqt5로 불리고 있는데 이게 Qt입니다. 큰 틀은 Qt라서 Qt를 안다면 금방 익히지 않을까 싶습니다. Pyqt5를 사용하면 tkinter나 wxpython과 다르게 직접 배치할 수 있는 프로그램(?)이 있습니다. Qt Designer라는 프로그램인데요. 이를 이용해 GUI 틀을 만들고 py파일로 바꿀 수 있습니다. 이번 포스팅에서는 Qt Designer를 이용해 GuI 틀을 만들고 py파일로 바꿔보겠습니다...
Checkbutton의 세가지 모양에 대해 알아보겠습니다. GUI 창이 떴을 때의 Checkbutton 모습을 임의로 만들 수 있는데 다음과 같은 형태로 만들 수 있습니다. 목차 체크 불가능 버튼 체크 불가능 버튼을 만들려면 tk.Checkbutton의 파라미터에 state = disabled 를 추가합니다. 체크가 된 상태로 만들고 싶다면 select 메쏘드를 사용합니다. select를 넣으면 체크가 된 상태로 GUI 창이 뜹니다. deselect를 넣으면 체크가 안 된 상태로 창이 뜨게 됩니다. import tkinter as tk root = tk.Tk() check1 = tk.Checkbutton(root, text='Disabled',variable=tk.IntVar(),state= 'disab..
Tkinter의 기본 위젯입니다. 기본 위젯으로는 Entry, Spinbox, Combobox, Checkbutton,Radiobutton, Text widget, Button, LabelFrame으로 8개입니다. IntVar,DoubleVar,StringVar,BooleanVar 위젯 소개 전에 var의 정수,소수,문자열,부울를 어떻게 표현하는지만 설명하고 넘어가겠습니다. tkinter에서 타입 설정을 하려면 IntVar,DoubleVar,StringVar,BooleanVar로 설정합니다. IntVar는 정수, DoubleVar는 소수, StringVar는 문자열, BooleanVar는 부울개체입니다. GUI를 만들때 Var 설정을 해주고 연결지어서 객체를 만들게 됩니다. Entry Entry는 빈칸 ..
Tkinter를 이용해 GUI를 만들어봅시다. 화면상에 'Hello World' 를 띄어보겠습니다. import tkinter as tk from tkinter import ttk root = tk.Tk() label= ttk.Label(root,text='Hello World') label.pack() root.mainloop() 코드 설명 root = Tk() : 기본 오브젝트로 창을 하나 만듭니다. 메인 창으로 나타납니다. label = ttk.Label(root, text='Hello World') : Tkinter에서는 텍스트 오브젝트를 Label이라고 합니다. 텍스트는 ttk 모듈에서 만들 수 있어서 ttk.Label(대상, text='원하는텍스트')으로 ttk 안에서 메쏘드 실행을 합니다. ..
GUI는 graphical user interface의 약자로 그래픽 사용자 인터페이스라고 합니다. 입출력을 사용하기 편하게 하기 위해서 어떤 창이나 아이콘으로 표시하는것인데 코딩으로만 하면 일일히 파이참이나 cmd나 쥬피터를 가서 실행을 했는데 GUI를 만들어 놓으면 창을 띄어서 간단하게 버튼 하나로 코딩 실행을 할 수 있거나 원하는 데이터를 한눈에 볼 수 있게끔 만들 수 있습니다. GUI를 만드는 툴은 pyqt, wxpython, pysimplegui, kivy 등 많이 있는데 그 중에서 파이썬에 내장되어 있어서 따로 설치가 필요없는 tkinter를 소개할까 합니다. 각 툴마다 장단점이 있어서 고급진 인터페이스를 만들게 되면 여러 툴을 쓰게 되긴 합니다만 개인적으로는 tkinter가 코드구성이 간단해..