파이썬 5

[PyQt5] 사용자 위젯에서 배경 그리기

개요 위젯을 상속받은 사용자 위젯의 배경을 커스터마이징하여 그리는 방법을 알아보도록 하겠습니다. 배경 그리기 Qt에서 배경 등은 QPainter 객체를 통하여 그릴 수 있습니다. 이를 위해서는 paintEvent() 이벤트 처리 함수를 오버라이드 합니다. 다음 예제는 paintEvent() 함수를 override하고 간단하게 배경을 붉은색으로 칠하는 예제입니다. import sys from PyQt5.QtWidgets import QWidget, QApplication from PyQt5.QtGui import QPainter, QColor, QPen class MyWidget(QWidget): def __init__(self): super().__init__() self.initUI() def init..

[Python] 라즈베리파이 GPIO 제어하기 - 기초

개요 라즈베리파이에서 GPIO를 제어하는 방법을 알아보겠습니다. 패키지 설치 라즈베리파이에서 GPIO를 제어하기 위해서는 "RPi.GPIO" 패키지가 필요합니다. 다음과 같이 "RPi.GPIO" 패키지를 설치할 수 있습니다. $ pip install RPi.GPIO GPIO 제어 간단 출력 예제 다음은 GPIO를 이용한 간단한 출력 예제입니다. import time import RPi.GPIO as GPIO LED = 3 # LED 제어용 GPIO 핀 DELAY = 0.3 # GPIO를 BCM 칩 기준으로 GPIO.setmode(GPIO.BCM) # LED 를 위한 핀을 출력으로 설정 GPIO.setup(LED, GPIO.OUT) try: while True: # LED 켜기 GPIO.output(LED..

[Python] 변수 할당

데이터형별 기본적인 변수 할당 및 초기화는 다음과 같이 수행합니다. i = 10 n = 0 str = "문자열 데이터" pi = 3.14 list1 = [1, 3, 45] tuple1 = (1, 3, 45) is_bool = True dict1 = { "a":0, "b":1, "s":"string" } 동일한 값으로 한꺼번에 초기화는 다음과 같이 할 수 있습니다. i = j = k = 0 name1 = name2 = name3 = f'no name' real1 = real2 = real3 = 0.0 rect1 = rect2 = rect3 = (0, 0, 0, 0) 튜플이나, 배열(list)에서 각 항목들을 한꺼번에 변수들로 입력 받을 수 있습니다. 주의할 점은 배열이나 튜플 항목의 개수와 좌변의 변수의 ..

[Python] 파일 확장자 분리하기

파이썬에서 파일 확장자를 분리하려면, os.path.splitext() 함수를 이용하면 됩니다. splitext() 함수를 이용하는 방법은 다음과 같습니다. from os.path import splitext print(f"{splitext('bar')=}") print(f"{splitext('foo.bar.exe')=}") print(f"{splitext('/foo/bar.exe')=}") print(f"{splitext('.cshrc')=}") print(f"{splitext('/foo/....jepg')=}") print(f"{splitext('/foo/...a.jepg')=}") print(f"{splitext('/foo/...a....jepg')=}") print(f"{splitext('/foo..

[Python] 디스크 용량 확인하기

디스크의 용량을 확인하기 위해서 Pytyon 3에서 지원하는 shutil 패키지의 disk_usage() 함수를 이용하면 됩니다. 아래 소스는 현재 작업 폴더가 속한 디스크에 대한 용량을 확인하는 예제입니다. import shutil my_path = '.' # 디스크의 용량 확인 total, used, free = shutil.disk_usage(my_path) # 디스크 용량에 대한 이름 확인 total_label, used_label, free_label = shutil.disk_usage(my_path)._fields print(f'{total_label} = {total:,} byte / {used_label} = {used:,} byte / {free_label} = {free:,} byte'..

728x90