Framework/PyQt
-
- [PyQt] self.function(param)과 function(self, param)의 차이점
self.function(param)과 function(self, param)의 차이점들어가며PyQt를 이용하여 개발을 할 때, 언제 @self.function(param)@ 또는 @function(self, param)@를 써야할지 헷갈릴 때가 있다.이 둘의 차이점에 대해 정리해본다. self개념파이썬 클래스의 인스턴스 메서드에서 현재 객체 자신을 참조하기 위한 첫 번째 매개변수클래스의 인스턴스(객체) 자신을 참조하는 변수클래스 내에서 정의된 메서드가 호출될 때 자동으로 해당 메서드가 속한 객체를 가리키도록 한다.클래스와 객체 지향 프로그래밍(OOP)에서 매우 중요한 개념메서드 내에서 객체의 속성이나 다른 메서드에 접근할 때 사용 @self@는 메서드 내에서 객체의 속성과 다른 메서드에 접근할 수 있..
2024.10.12 -
- [PyQt] QTableWidget 안의 항목 검색 및 복원 기능 구현 방법
QTableWidget 안의 항목 검색 및 복원 기능 구현 방법들어가며PyQt의 @QTableWidget@ 안의 항목을 검색하고, 원래의 내용을 복원 시키는 방법을 정리해본다. 방법검색하고자 하는 내용이 해당 행에 있을 경우 표시하고, 그렇지 않을 경우 숨기는 방법을 이용한다.from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem, QPushButton, QLineEditclass SearchResetTableApp(QWidget): def __init__(self): super(SearchResetTableApp, self).__init__() self.ini..
2024.01.29 -
- [PyQt] QTableWidget과 SQLite3를 연동하여 구현한 CRUD 프로그램
QTableWidget과 SQLite3를 연동하여 구현한 CRUD 프로그램 들어가며 QTableWidget과 SQLite3를 연동하여 간단하게 구현한 CRUD 프로그램 소스 코드를 정리해본다. 소스 코드 import sys import sqlite3 from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QTableWidget, QTableWidgetItem, QLabel, QMessageBox class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("C..
2023.11.27 -
- [PyQt] 플랫폼 독립적인(Platform Independent) 스타일 적용하는 방법 (Fusion)
PyQt에서 플랫폼 독립적인(Platform Independent) 스타일 적용하는 방법 (Fusion) 들어가며 윈도우와 맥에서 표시되는 PyQt 프로그램의 모습은 다르다. 그 이유는 플랫폼에 영향을 받기 때문이다. 이렇게 플랫폼에 영향을 받지 않고, OS에 상관없이 동일하게 PyQt 프로그램이 표현되도록 하는 방법이 있다. 방법 PyQt에서는 플랫폼 독립적(Platform Independent)인 스타일 플러그인인 @Fusion@을 제공한다. 이 스타일 플러그인을 이용하여 스타일을 적용시키면 OS에 상관 없이 동일한 UI가 표시될 수 있도록 할 수 있다. 이 스타일 플러그인을 사용하기 위해서는 다음과 같이 @QStyleFactory@ 모듈을 불러와야 한다. from PyQt5.QtGui import ..
2023.09.21 -
- [PyQt] 맥(Mac)에서 윈도우(Windows)와 비슷하게 메뉴 표시하는 방법
맥(Mac)에서 윈도우(Windows)와 비슷하게 메뉴 표시하는 방법들어가며한 줄의 코드를 넣음으로써 맥에서 실행되는 PyQt의 메뉴가 윈도우와 비슷하게 표현되도록 만들 수 있다. 방법menubar.setNativeMenuBar(False) 참고 사이트 06) 메뉴바 만들기![](https://wikidocs.net/images/page/21866/2_6_menubar_sample.png) - GUI 어플리케이션에서 메뉴바(menu bar…wikidocs.net
2023.09.21 -
- [PyQt] QTableWidget에 1,000 단위로 쉼표(,)를 추가하고 숫자 정렬 기능 추가하기
QTableWidget에 1,000 단위로 쉼표(,)를 추가하고 숫자 정렬 기능 추가하기 들어가며 PyQt5에서 @QTableWidget@에 값을 넣을 때, 기본적으로 @string@ 형식의 값이 들어가게 된다.(@int@형의 값은 넣을 수 없다.) 이 때, @QTableWidget@에 (@string@ 형의) 숫자를 넣을 때 1,000 단위로 쉼표(@,@)를 추가하고, 정렬(오름차순/내림차순)을 할 수 있도록 구현해보자. 실습을 위한 QTableWidget 객체 생성 하기 다음과 같이 실습을 위해 필요한 @QTableWidget@ 객체를 생성한다. self.table_widget = QTableWidget(self) self.table_widget.setGeometry(50, 50, 400, 200) ..
2023.07.20 -
- [PyQt] 간단한 CRUD(Create, Read, Update, Delete) 프로그램
간단한 CRUD(Create, Read, Update, Delete) 프로그램 들어가며 PyQt5로 간단한 CRUD(Create, Read, Update, Delete) 기능을 수행할 수 있는 프로그램을 만들어보자. 코드 @QTextEdit@ 위젯을 이용하여 CRUD 기능을 수행할 수 있는 메모장과 비슷한 프로그램이다. import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog class TextEditor(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.textEdit = QT..
2023.07.18 -
- [PyQt] QTimer.singleShot 함수를 특정 시간 간격으로 여러번 실행하는 방법
QTimer.singleShot 함수를 특정 시간 간격으로 여러번 실행하는 방법들어가며@PyQt5@에서 @QTimer.singleShot@ 함수를 특정 시간 간격으로 여러번 실행할 수 있다.@QTimer.singleShot@ 함수는 밀리초 단위의 시간 지연을 준 후, 특정 함수를 실행해주는 함수이다. 예제다음은 @QTimer.singleShot@ 함수를 3초 간격으로 여러 번 실행하는 예제이다.반복문과 재귀 호출을 이용하여 구현하였다.from PyQt5.QtCore import QTimerclass MyClass: def __init__(self): self.count = 0 def start_timer(self): self.count = 0 self.r..
2023.07.16 -
- [PyQt] QAction에서 triggered 시그널을 사용할 때, 인자를 triggered 메서드에 전달하는 방법
QAction에서 triggered 시그널을 사용할 때, 인자를 triggered 메서드에 전달하는 방법PyQt의 @QAction@에서 @triggered@ 시그널을 사용할 때, 인자를 @triggered@ 메서드에 전달하는 방법을 알아보자. 람다 함수 사용하기action = QAction("My Action", parent)action.triggered.connect(lambda: my_function(arg1, arg2))my_function은 arg1과 arg2를 인자로 받는 함수이다.triggered 시그널이 발생하면, 람다 함수가 호출되고 my_function이 호출된다.arg1과 arg2는 람다 함수에서 직접 전달된다. @functools.partial@ 사용하기import functoolsa..
2023.07.08 -
- [PyQt] QClipboard.Clipboard와 QClipboard.Selection의 차이점
PyQt5에서 @QClipboard.Clipboard@와 @QClipboard.Selection@의 차이점들어가며@QClipboard.Clipboard@와 @QClipboard.Selection@은 PyQt에서 클립보드의 데이터를 설정 및 가져오는 방법을 지정하는 상수이다. 사용법다음 모듈을 @import@하여 클립보드 기능을 사용할 수 있다.from PyQt5.QtGui import QClipboard 사용 예def copyElementNameToClipboard(self): name = self.sender().text() app = QApplication.instance() clipboard = app.clipboard() clipboard.setText(name, QClipb..
2023.07.07 -
- [PyQt] 커스텀 아이콘 패키지(fugueicons) 설치 및 사용해보기
PyQt 커스텀 아이콘 패키지(fugueicons) 설치 및 사용해보기 들어가며 PyQt에는 기본 아이콘 팩이 있지만(참고), 아이콘의 종류가 적다. 그래서 커스텀 아이콘 패키지(@fugueicons@)를 설치하여 사용할 수 있다. 방법 @pyqt5-fugeicons@ 패키지 설치하기 터미널에서 다음 명령을 실행하여 @pyqt5-fugeicons@ 패키지를 설치한다. > pip install pyqt5-fugueicons 아이콘 사용해보기 다음과 같이 모듈을 불러와@fugeicons@의 아이콘을 사용해볼 수 있다. import pyqt5_fugueicons as fugue @icon()@ 메서드를 사용하여 아이콘을 불러올 수 있다. PyQt 기본 아이콘팩의 아이콘을 사용하는 방법과 유사하다. @QActi..
2023.07.05 -
- [PyQt] style().standardIcon() 메서드에서 사용할 수 있는 아이콘 종류 및 숫자
PyQt style().standardIcon() 메서드에서 사용할 수 있는 아이콘 종류 및 숫자 들어가며 PyQt에는 기본적으로 내장되어 있는 표준 아이콘(Standard Icon)들이 있다. 아이콘 파일을 직접 구하지 않고 사용할 수 있으므로, 프로그램을 만들 때 활용하면 유용하다. 아이콘 확인해보기 import sys from PyQt5.QtWidgets import QApplication, QGridLayout, QPushButton, QStyle, QWidget class Window(QWidget): def __init__(self): super(Window, self).__init__() icons = sorted([attr for attr in dir(QStyle) if attr.start..
1 2023.05.17 -
- [PyQt] PyQt5에서 QWebView 사용하기
PyQt5에서 QWebView 사용하기들어가며원래 PyQt에서 @QWebView@ 위젯을 사용할 수 있었으나, PyQt5에서부터는 더 이상 기본으로 제공되지 않게 되었다.따라서 @QWebView@ 위젯을 사용하려면 @QWebEngineView@ 모듈을 사용해야 한다. 그리고 @QWebView@ 객체가 아닌, @QWebEngineView@ 객체를 사용한다. 방법다음의 명령을 터미널에서 실행하여 @QWebEngineView@를 사용하기 위해 필요한 패키지를 설치한다.> pip install PyQtWebEngine 다음과 같이 @import@ 하여 사용한다.from PyQt5.QtCore import QUrlfrom PyQt5.QtWidgets import QApplication, QWidgetfrom Py..
2023.05.16 -
- [PyQt] 구글 번역기 프로그램 만들기 & "'NoneType' object has no attribute 'group'" 이슈 해결하기
PyQt로 구글 번역기 프로그램 만들기들어가며PyQt를 이용하여 간단하게 한글의 문장을 영어 문장으로 번역하는 프로그램을 만들어보자.이때, 무료로 사용할 수 있는 구글 번역기 패키지(@googletrans@)를 사용하도록 한다. 코드import sysfrom PyQt5.QtWidgets import *from googletrans import Translatorclass MyApp(QWidget): def __init__(self): super().__init__() self.lbl1 = QLabel('한국어:', self) self.lbl2 = QLabel('영어:', self) self.le = QLineEdit(self) self..
2023.05.15 -
- [PyQt] self.width()와 self.height()를 사용할 때, 실행창이 튕기는 경우 해결 방법
PyQt에서 self.width()와 self.height()를 사용할 때, 실행창이 튕기는 경우 해결 방법들어가며PyQt에서 @self.width()@와 @self.height()@를 사용할 때, 실행창이 튕기는 경우가 있다.예를 들어, @self.width()@ 값과 @self.height()@ 값을 직접 정수로 나누어 사용하는 경우 실행창이 튕기게 된다.qp.drawPoint(self.width() / 2, self.height() / 2) 해결 방법@self.width() / 2@와 @self.height() / 2@의 결과값이 실수형(Float)이기 때문에 실행창이 튕기게 되는 것이다.따라서 다음과 같이 정수형 타입 변환 함수 @int()@를 사용해줘야 한다.qp.drawPoint(int(se..
2023.05.14