'파이썬(Python)/파이썬 GUI(PyQt5 & tkinter)' 카테고리의 글 목록
본문 바로가기

파이썬(Python)/파이썬 GUI(PyQt5 & tkinter)21

tkinter - 섭씨 온도를 화씨온도로 변환하는 프로그램 만들기 tkinter를 응용해서 섭씨온도(℃)를 입력하면, 화씨온도(℉)로 변환해주는 프로그램을 만들어 보도록 하겠습니다. from tkinter import * win = Tk() win.title('섭씨 온도를 화씨 온도로 변환') win.geometry('400x100') lbl_c = Label(win, text="섭씨온도", width=10) lbl_f = Label(win, text="화씨온도") lbl_c.grid(row=0, column=0) lbl_f.grid(row=1, column=0) ent_c = Entry(win, width=20) ent_f = Entry(win) ent_c.grid(row=0, column=1) ent_f.grid(row=1, column=1) btn_tr = But.. 2021. 10. 12.
tkinter - 이벤트 설정하기 지난번 포스트는 Window(창)를 만들고, Label, Button, Entry를 만들어서 배치를 해 보았습니다. 지난 포스튼 아래 링크를 참고하시기 바랍니다. tkinter - 그리드를 이용해서 레이블, 엔트리, 버튼 배치하기 이번 포스트는 이벤트를 설정하는 방법에 대해서 적어 보도록 하겠습니다. win = Tk() win.mainloop() 우선 창을 만들어 보겠습니다. 여기에 레이블과 버튼을 넣어 보도록 하겠습니다. str = ['더하기', '빼기'] win = Tk() count = StringVar(value = '0') lbl_data = Label(win, width=20, textvariable = count) lbl_data.grid(row=0, column=0, columnspan=2.. 2021. 10. 10.
tkinter - 그리드를 이용해서 레이블, 엔트리, 버튼 배치하기 지난 포스트에서 레이블, 엔트리, 버튼을 만드는 방법을 설명하였습니다. 지난 포스트는 아래 링크를 참고하시기 바랍니다. tkinter - 레이블, 엔트리, 버튼 만들기 이번 포스트는 Label, Entry, Button을 배치하는 방법을 다뤄 보도록 하겠습니다. from tkinter import * win = Tk() win.title('password') win.geometry('250x100') win.mainloop() 위와 같이 코드를 입력하여 창을 만들어 줍니다. 이렇게 창이 만들어 집니다. 보시면 아시겠지만, 비밀번호를 입력하는 창을 tkinter를 사용하여 만들려고 합니다. 우선 레이블 부터 배치 하도록 하겠습니다. lbl_name = Label(win, text='User Name') l.. 2021. 10. 8.
tkinter - 레이블, 엔트리, 버튼 만들기 지난 포스트에 이어서 tkinter 사용법에 대해서 적어 보도록 하겠습니다. 지난 포스트는 아래 링크를 참고하시기 바랍니다. tkinter 첫번째 - 윈도우 창 만들기 from tkinter import * win.mainloop() 우선 창을 만들고, from tkinter import * win = Tk() win.title('Multi Widget') win.geometry('300x200') win.mainloop() 창의 크기와 이름을 지정합니다. 이렇게 만든 창에, 'Lable'과 'Button' 그리고 텍스트를 입력할 수 있는 'Entry'를 넣어 보도록 하겠습니다. lbl = Label(win, text='label') lbl.pack() #레이블을 윈도에 적정하게 배치 레이블은 lbl이라.. 2021. 10. 6.
tkinter - 윈도우 창 만들기 파이썬으로 유용한 프로그램을 만들더라도 사용할때마다 파이참을 열어야 한다면 여간 번거러운 일이 아닐 수 있습니다. 파이썬으로 만든 코드를 실행파일로 만들더라도 최소한의 UI라도 있으면 훨씬 편하게 활용할 수 있습니다. PyQt나 Qtdesigner를 사용해도 되지만, tkinter 모듈을 사용하면 훨씬 빠르고 편리하게 원하는 프로그램을 만들 수 있습니다. 'tkinter'는 내장 모듈이기 때문에 별도로 설치할 필요는 없습니다. from tkinter import * tkinter 모듈을 불러와 보겠습니다. win = Tk() ~~ 중간에 내용 ~~~~~ win.mainloop() 이런 구조로 활용하시면 됩니다. win = Tk() win.mainloop() 이렇게만 코드를 입력하고 실행시켜 보겠습니다. .. 2021. 10. 2.
PyQt5 - (Qt designer) QFileDialog 를 이용하여 여러파일 이름 출력 Qt designer와 QFileDialog를 이용하여 여러 파일의 이름을 출력해 보겠습니다. 우선 Qt designer에서 아래와 같이 Dialog와 버튼, textEdit을 만듭니다. (lineEdit이 아니라 textEdit을 사용하였으니 유의하시기 바랍니다.) import sys from PyQt5.QtWidgets import * from PyQt5 import uic 필요한 모듈을 불러옵니다. test_ui = r'C:\Users\Administrator\Desktop\Test.ui' 만들어진 UI 파일의 경로를 'test_ui'라는 변수에 넣습니다. class MainDialog(QDialog): def __init__(self): QDialog.__init__(self, None) uic... 2020. 12. 17.
PyQt5 - (qt designer) 간단한 MainWindow 만들기 qtdesigner를 이용하여 간단한 윈도우창을 만들겠습니다. designer를 실행합니다.(실행파일이 어디있는지 모르시면, 아래 포스트를 참고하세요.) 2020/11/18 - [파이썬/PyQt5] - PyQt5 - qt designer 파일 위치 PyQt5 - qt designer 파일 위치 아나콘다(Anaconda3)를 설치하고 나서 qt designer 위치를 찾느라 헤메었네요. 비전공자에다 40대 아저씨가 코딩을 시작하려고 하니 엄청 힘든점이 많네요. designer 위치는 아래 경로에 있습니다. Anaconda dotsnlines.tistory.com 'Main Window'를 선택한 다음 '생성(R)' 버튼을 클릭합니다. 왼쪽 메뉴에서 'Push Button' 과 'Line Edit'을 Dra.. 2020. 12. 16.
PyQt5 - QFileDialog(파일선택 창 열기) PyQt를 이용하여 클릭을 하면 파일을 선택할 수 있는 창을 여는 코드입니다. import sys from PyQt5.QtWidgets import * 필요한 모듈을 가져옵니다. class MyWindow(QWidget): def __init__(self): super().__init__() self.setupUI() 클래스를 만들고 시작하면 setupUI함수를 불러올 수 있도록 합니다. def setupUI(self): self.setGeometry(800, 200, 300, 300) self.setWindowTitle('File Open Test') UI 창 크기와 위치를 설정하고 타이틀도 적습니다. self.pushButton = QPushButton('File Open') self.pushButt.. 2020. 12. 15.
PyQt5 - QTableWidget(테이블 위젯) 사용하기 2 QTableWidget을 사용하는 두번째 방법입니다. 이번 코드는 좀 복잡해서 저도 다 이해하지 못했습니다. 대충 이렇구나 이해하면서, 다음부터는 Qt Designer 를 포스트 할까 합니다. QT Designer는 일일이 UI를 다 만들어줄 필요 없이 드레그 앤 드롭으로 작성이 가능하며, 함수만 연결해 주면 됩니다. 제가 워낙 초보라 그것도 이해가 어려워서 일일이 다시 공부하고 있습니다. import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * 필요한 모듈을 불러옵니다. class TestWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() 윈도우 클래스를 생.. 2020. 12. 14.
PyQt5 - QTableWidget(테이블 위젯) 사용하기 PyQt5를 사용하여 TableWidget을 사용하는 방법입니다. import sys from PyQt5.QtWidgets import * 필요한 모듈을 임포트 합니다. class TestWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() QMainWindow를 상속받아 TestWindow 클래스를 만듭니다. def setupUI(self): self.setWindowTitle('TestWindow') self.tableWidget = QTableWidget(self) self.tableWidget.resize(400,300) self.tableWidget.setRowCount(2) self.tableWidget.setCo.. 2020. 12. 13.
PyQt5 - Q CheckBox Widget(체크박스 위젯) Qcheckbox 위젯을 사용한 예제입니다. class TestWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() QMainWinodw 클래스를 상속받아 TestWindow를 만듭니다. def setupUI(self): self.setWindowTitle('체크박스') self.checkBox1 = QCheckBox('항목1', self) self.checkBox1.move(20,20) self.checkBox1.setChecked(True) self.checkBox1.clicked.connect(self.checkBoxStateChanged) self.checkBox2 = QCheckBox('항목2', self) self.. 2020. 12. 12.
PyQt5 - Q Groupbox Widget(그룹박스 위젯) QGroupbx 위젯을 사용하는 방법입니다. import sys from PyQt5.QtWidgets import * 필요한 모듈을 임포트 합니다. class TestWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() QMainWindow를 상속받아 TestWindow 클래스를 만들고 시작이 될 수 있도록 합니다. def setupUI(self): self.setWindowTitle("TestWindow") groupBox = QGroupBox('항목 그룹',self) groupBox.move(10,10) groupBox.resize(150,80) self.radio1 = QRadioButton('항목1',self) sel.. 2020. 12. 11.
PyQt5 - QSpinBox(스핀박스) PyQt5를 이용한 SpinBox 예제입니다. import sys from PyQt5.QtWidgets import * 필요한 모듈을 가져옵니다. class TestWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() QMainWindow를 상속받아 TestWindow 클래스를 만듭니다. def setupUI(self): self.setWindowTitle("TestWindow") label = QLabel('수량: ',self) label.move(10,20) self.spinBox = QSpinBox(self) self.spinBox.move(40,20) self.spinBox.resize(60,20) self.spinB.. 2020. 12. 10.
PyQt5 - Radio Button(라디오 버튼) 만들기 이번 포스트에서는 PyQt5를 이용하여 Radio Button(라디오 버튼)을 만들어 보겠습니다. QRadioButton을 사용하면 되고, 전체 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import sys from PyQt5.QtWidgets import * class TestWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() def setupUI(self): self.setWindowTitle('RadioWindow') self.radio1 .. 2020. 12. 7.
PyQt5 - QLineEdit 사용하기 PyQt5를 통해 입력창을 만들어 보겠습니다. Visual Basic에서는 InputBox로 썼던걸로 기억하는데, 파이썬은 LineEdit이라고 하네요. 사실 UI를 일일이 코딩해 줄 필요는 없습니다. qtdesigner를 사용하시면, 자동으로 만들어 집니다. 각 개체를 함수와 연결만 하시면 됩니다. 저는 제가 공부하느라 일일이 다 만들어 보고 있습니다. LineEdit은 QLineEdit을 사용하면 됩니다. 전체 코드는 아래와 같습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 .. 2020. 12. 6.
PyQt5 - QPushButton, QLabel 만들기 PyQt5를 이용하여 PushButton과 Label을 만들어 보겠습니다. PyQt5에서 PushButton은 QPushButton이고, Label은 QLabel로 쓰셔서 기능을 사용하시면 됩니다. 전체 코드는 포스트 맨 아래에 있습니다. class TestWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() 윈도는 지난 포스트와 다르게 'class'를 사용해서 만들겁니다. 'setupUI'라는 함수를 사용해서 윈도우를 세팅할 예정이고, 'super().__init__()'은 상속받는 class에서 시작하게 하는 명령어라고 생각하심 됩니다. def setupUI(self): self.setWindowTitle('ButtonL.. 2020. 12. 5.
PyQt5 - 윈도우화면에 QPushButton 추가하기 이번에는 "def setupUI(self):"라는 함수를 만들어서 윈도우와 버튼을 추가하여 보겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import sys from PyQt5.QtWidgets import * class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setupUI() def setupUI(self): self.setWindowTitle("푸쉬버튼윈도우") btn = QPushButton('클릭해 주세요',self) btn.move(20,20) btn.clicked.connect(self.btn_clicked) def btn_clicked(se.. 2020. 12. 4.
PyQt5- QMainWindow 클래스를 이용한 간단한 윈도우 만들기 이번 포스트에서는 윈도우를 간단하게 띄워보도록 하겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import sys from PyQt5.QtWidgets import * class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("내가만든 윈도우") self.setGeometry(200,300,500,500) if __name__=='__main__': app = QApplication(sys.argv) window = MyWindow() window.show() app.exec_() cs 갑자기 코드가 어려워졌네요. 이 코드를 이해하기 위해서는 우선 'Class'개념을 이해해야 합니다.. 2020. 11. 21.
PyQt5 - QPushButton 위젯을 이용하여 간단한 창 만들기 시그널과 슬롯을 이용한 간단한 예제를 작성해 보겠습니다. QPushButton이라는 클래스를 가져와서 누르면 어떠한 동작을 하는 코드입니다. import sys from PyQt5.QtWidgets import * def clicked_slot(): print('clicked') app = QApplication(sys.argv) btn = QPushButton("push") btn.clicked.connect(clicked_slot) btn.show() app.exec_() 클릭했을 때 동작 즉 슬롯은 이벤트 루프를 생성하기 전에 작성해야 한다고 하네요. def clicked_slot(): print('clicked') 클릭 했을때 'cliced'라는 프린트문이 실행되도록 함수(슬롯)을 작성했습니다. .. 2020. 11. 20.
PyQt5 - PyQt 간단한 창 띄우기 창을 띄우는 간단한 코드 입니다. import sys from PyQt5.QtWidgets import * app = QApplication(sys.argv) label = QLabel("Hello, PyQt") label.show() print("Before event loop") app.exec_() print("After event loop") "sys.argv"는 현재 실행되는 파이썬 파일의 경로를 나타냅니다. "QApplication" 클래스를 "app"으로 생성한 후 "exe_" 메서드를 호출하는 순간 이벤트 루프가 생성됩니다. 쉽게 말해서 "exe_"는 창을 계속 띄워놓을 수 있도록 반복하는 즉 Loop가 발생한다는 얘기입니다. 실행하면 위의 그림과 같이 작은 창이 하나 뜨고, 레이블에는 H.. 2020. 11. 19.