728x90

2022/02 9

[pyside6] QLabel에 이미지 넣을 때 종횡비(aspect ratio) 설정

pyqt, pyside 앱에 이미지를 넣고 싶을 때는 QLabel 위젯을 활용할 수 있다. 이때 이미지를 넣을 때 이미지의 크기를 원래 크기와 다르게 해주려면 QPixmap 클래스의 scaled 메소드를 활용해야 한다. 이미지의 크기를 지정해줄 때는 이미지의 종횡비(aspect ratio)를 어떻게 설정할 것인가를 고려해야 한다. 종횡비는 이미지의 가로세로 비율이라고 생각하면 된다. 이미지의 경우 대체로 종횡비를 유지하는 것이 실제 비율을 해치지 않기 때문에 좋다. QLabel 이미지 종횡비 설정법 만약 원래 이미지의 종횡비를 무시하고 지정하는 크기에 맞출 것이면 aspectMode를 Qt.IgnoreAspectRatio로 해주면 된다. 종횡비를 유지할 것이면 Qt.KeepAspectRatio로 설정하면..

코딩/pyqt, pyside 2022.02.27 (2)

[pyside6] 위젯 내 글자 크기를 변경하고 싶을 때

pyside 또는 pyqt에서 위젯이라는 것은 UI를 구성하는 하나하나의 요소를 뜻한다. 버튼, 라벨, 체크박스 등등이 모두 위젯이다. 오늘은 이러한 위젯 내 글자 크기를 변경하는 방법에 대해 알아보자. 어렵지 않으니 바로 코드를 살펴보자. from PySide6.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget import sys class MainWindow(QMainWindow): def __init__(self): super().__init__() widget1 = QLabel("hello world") widget2 = QLabel("hello world") font = widget2.font..

코딩/pyqt, pyside 2022.02.26

[pyside6] QThreadPool을 이용해서 몇 개의 스레드가 활성화되어 있는지 확인하기

pyside 앱에서 여러 개의 스레드를 사용하다보면 도대체 현재 몇 개의 스레드가 활성화되어 있는지 궁금할 때가 있다. QThreadPool을 활용하면 활성화되어 있는 스레드의 개수를 파악할 수 있다. QThreadPool은 스레드를 사용하는 프로그램에서 스레드 생성 비용을 줄이기 위해 개별 QThread 객체를 관리하고 재활용하기 위해 사용된다 [1]. 예제를 위해 간단한 프로그램을 만들었다. 하나의 버튼이 있는 프로그램인데, 버튼을 클릭하면 하나의 스레드가 생성되면서 현재 활성화되어 있는 스레드의 개수를 알려준다. 참고로 time.sleep(5)를 줬기 때문에 각 스레드는 5초 후에 소멸된다. from PySide6.QtWidgets import QApplication, QPushButton, QHB..

코딩/pyqt, pyside 2022.02.25

[jquery] 체크박스 체크 여부 확인하기

id가 test인 체크박스가 있다고 가정하겠다. 이 체크박스가 체크되어 있는지 아닌지의 여부를 jquery를 이용해서 확인하려면 다음과 같이 하면 된다. $('#test').prop(''checked"); 만약 체크되어 있다면 true를 반환할 것이고, 체크되어 있지 안하면 false를 반환할 것이다. 한번 확인해보자. test1이란 아이디를 부여한 체크박스는 체크가 된 상태이고, test2란 아이디를 부여받은 체크박스는 체크되어 있지 않은 상태다. 콘솔에서 각각 어떠한 값을 반환하는지 확인해보자. 체크되어 있는 것은 true를 그렇지 않은 것은 false를 반환함을 확인할 수 있다.

코딩/javascript 2022.02.22 (2)

[vim] vim에서 문서의 시작, 문서의 끝으로 바로 이동하려면?

로그를 담고 있는 파일은 금방 몇 만줄, 몇 십만줄의 내용이 쌓인다. vim을 이용해서 이러한 문서를 열고 나서 한 줄씩 또는 한 페이지씩 넘겨서는 문서의 최하단으로 이동하기까지 너무 오랜 시간이 걸린다. vim에는 이러한 기능을 수행해주는 단축키가 물론 있다. shift + g 문서의 끝으로 이동 Bottom에 도달했다는 것을 vim UI의 우측하단에서 확인할 수 있을 것이다. 반대로 문서의 최상단으로 바로 이동시켜주는 단축키도 있다. gg 문서의 시작으로 이동 이번에는 Top에 도달했다는 것을 확인할 수 있다. vim의 단축키 세계는 매우 방대하지만 자주 쓰는 것만 익혀두면 된다.

코딩/vi, vim 2022.02.20 (6)

[git] 브랜치 생성, 변경, 삭제하기

git을 사용하다보면 언제까지나 master 브랜치에서만 작업을 할 순 없다. 불편함과 한계를 느끼는 순간이 있다. 그렇다면 바로 브랜치를 사용할 시점이다. 조금씩 다른 다양한 버전을 만들어야 할 때는 각각 브랜치를 생성해서 작업을 해주는 것이 좋다. 그래야 코드를 잘 보존할 수 있고, 버전별로 차별점을 줄 수 있다. 브랜치 생성 새 브랜치를 생성하고자 할 때는 다음과 같은 명령을 주면 된다. git branch [브랜치명] 으로 생성할 수 있다. 브랜치 리스트 확인 그리고 현재 있는 브랜치의 리스트를 확인하고 싶을 때는 단순히 git branch라고 명령해주면 된다. git branch 만약 원격 저장소의 브랜치 리스트를 확인하고 싶을 때는 -r 플래그를 붙여주면 된다. git branch -r 브랜치..

코딩/git, github 2022.02.10

[flask+jinja2] 서버에서 받은 html 요소가 html 문서에서 제대로 표현되게 하려면?

@app.route("/index") def index(): data = "안녕하세요.반갑습니다." return render_template('index.html', data=data) 위와 같이 서버에서 html 요소를 전달한 것을 jinja2를 통해 html 문서에서 표현해야 하는 상황인 경우에는 다음과 같이 safe라는 필터를 걸어줘야 한다. {{data|safe}} 안녕하세요. 반갑습니다. safe 필터를 걸어주면 autoescape가 비활성된다. 그렇지 않고 {{data}}로 사용하면 p 태그를 인식하지 못하고 그냥 문자열로 받아들인다. {{data}} 안녕하세요.반갑습니다. 주의할 것은 safe 필터는 개발자가 신뢰할 수 있는 데이터가 표출되는 곳에 대해서만 사용해야 한다는 점이다. 그렇지 않..

코딩/flask 2022.02.06

[flask+jinja2] break 사용하기

jinja는 서버에서 보낸 데이터를 html 문서에서 나타낼 때 쓰이는 일종의 템플릿 언어다. 문법은 전반적으로 파이썬과 유사한 부분이 많기 때문에 사용법을 어렵지 않게 익힐 수 있다. 오늘은 for문을 사용하다가 break를 사용할 일이 생겨서 사용법을 정리해 본다. break는 보통 for문과 같은 반복문에서 중도 탈출할 때 사용되는 문법이다. 이 글을 읽는 분들은 break의 용도는 알고 계실 것이라 생각하기에 자세한 설명은 생략하겠습니다. 우선 jinja에서 break를 사용하려면 extension을 추가해줘야 사용할 수 있다. flask 프레임워크를 사용하고 있다면 app = Flask(__name__)과 같은 코드가 파이썬 문서 상단에 있을 것이다. 그 코드 아래에 다음과 같은 코드를 추가해줘..

코딩/flask 2022.02.05 (2)