Computer 비관심/PyQt5 13

[TKINTER/PYQT] 티케이인터 자동 새로고침 적용하기(HOT RELOAD)

웹개발에서 코드를 수정하게 되면 자동으로 웹사이트가 리로드가 되면서 수정한 내용이 반영이 된다. 이는 개발을 훨씬 쉽고 편하고 쉽게 할 수있도록 도와준다. 이러한 기능이 없다면 코드가 수정이 될 때 마다 끄고 실행하고를 반복 해야 할 것이다. 이는 아주 고되고 짜증난다. PYQT나 TKINTER를 가지고 간단하게 무엇인가를 만들어보려고 했는데 내용이 바뀔 때 마다 실행을 다시해줘야 했다. 인터넷이 이와 관련된 정보가 있는지 찾아 보았고 아래의 코드를 찾았다. # Based on this file: # https://github.com/pallets/werkzeug/blob/master/werkzeug/_reloader.py import time, os, sys, subprocess PY2 = sys.ve..

파이썬으로 이미지 다운로드 하기

파이썬으로 이미지를 다운받으면 반복적인 이미지 다운로드 작업을 자동화 할 수 있다. 이 코드는 단순히 다운로드 하는 작업만 진행하지만 selenium이나 requests를 잘 섞어서 사용하면 자동으로 특정한 페이지의 이미지들을 다운 받을 수 있도록 만들 수 있다. ## 필요한 모듈을 불러온다. import requests # to get image from the web import shutil # to save it locally ## 다운로드할 이미지 URL image_url = "http://~~~~.jpg" filename = image_url.split("/")[-1] # 스트림으로 이미지 얻어옴 r = requests.get(image_url, stream = True) # 이미지가 잘 받아졌..

[pyqt5] 기본레이아웃 만들기

아래의 화면은 flutter 공식홈페이지에서 가져왔다. 플러터의 튜토리얼을 이용한 이유는 개념이 비슷하기 때문이다. (이 개념은 html로 따지면 div에 이미 flex박스의 flex-direction: 속성이 걸려 있는 것과 같다. 하지만 플렉스박스 이전에 div를 float해서 레이아웃을 만드는 법과는 다르기 때문에 개념의 차이점을 정확히 아는게 중요할 것 같다.) 아래의 화면은 Row와 Column 위젯이 엮여져서 만들어 졌다.(nested) 화면을 만들때 즉 큰 레이아웃부터 작은 레이아웃으로 만들어 나가면 된다. 위의 로우는 Row는 하나의 칼럼과 하나의 이미지로 구성되어 있다. 그리고 칼럼은 텍스트, 텍스트, 로우, 로우 위젯으로 구성되어 있다. 그렇다면 이러한 방법을 어떻게 PyQt5에 적용 ..

[PYQT5] 프린트 할 위젯 선택하고 프린트 하는 예제

간단한 예제로 어떻게 작동하는지 응용하기 쉬운 소스입니다. QPrinter 클레스를 사용해서 출력합니다. import sys from PyQt5 import QtGui, QtWidgets, QtPrintSupport class App(QtWidgets.QMainWindow): def __init__(self): super().__init__() # Create some widgets self.setGeometry(500, 500, 300, 300) self.button = QtWidgets.QPushButton( 'Print QTextEdit widget (the one below)', self) self.button.setGeometry(20, 20, 260, 30) self.editor = QtWid..

Visual studio code에서 indentation 일괄적용

개발회사에서 장고로 웹사이트를 개발할 때는 pycharm을 이용해서 개발을 했다. 개인적으로 난 pycharm을 좋아하지 않았다. 프로그램 자체가 무겁다는 느낌이 많이 들었기 때문이다. 그때 아톰에디터도 유행 하고 있었는데 가볍고 좋았는데 이상한 잔버그들이 있었다. visual studio code를 알게 되고 visual code로 자바스크립트를 코딩을 했는데 배경, 폰트, 속도 전부다 만족스러웠다. 정말 최고의 에디터라고 말할 수 있다. 내가 파이썬을 좋아하고 파이썬 개발자가 되었던 이유는 파이썬이 정말 간결했기 때문이다. 하지만 visual studio code를 사용할 때 마다 인덴테이션 문제가 발생하였다. 문제 해결 방법 Space:4로 바꾸어 준다. pep8 ( 코딩스텐다드 )에서 인덴테이션을..

PyQt에 firestore 연결하고 exe 파일로 만들기 (2)

파이어베이스와 PYQT의 조화는 잘 사용하지 않는지 자료가 그다지 많지 않았다. 디버깅 하는 스스로 만들어내고 PYQT와 FIREBASE에서 발생하는 버그의 해결책들을 찾는데 시간이 오래걸렸다. PyQ에 firestore연결하고 exe 파일 만들기- 파이어스토어 파이썬에 연동하는법(1) https://infocentre.tistory.com/45 1. 파이인스톨러 사용 (1) 파이인스톨러(pyinstaller)를 사용한다. - 파이인스톨러의 간단한 사용 방법은 이전 글에 적어 두었다. https://infocentre.tistory.com/3 2. 디버깅 (디버깅을 쉽게 하는 방법을 모르면 개고생합니다.) (1). 파일인스톨러를 사용할때 디버깅을 위해서 처음엔 -w 플레그를 붙이지 않고 실행 파일을 만든..

PyQt에 firestore 연결하고 exe 파일로 만들기 (1)

처음 설치하는 것은 아래와 같이 firebase사이트에 들어가면 나와있다. https://firebase.google.com/docs/firestore/quickstart 아래와 같이 pip을 사용해서 firebase-admin을 다운 받는다. 이제 데이타베이스에 접속하는 코드를 입력한다. 여기서 Certificate() 라는 함수에 json 형식의 퍼미션 정보를 넣어야 한다. 이 인증정보는 파이어베이스 콘솔로 들어와 project overview 옆에 있는 기어창을 누르고 project settings를 누른뒤 service accounts > python 버튼을 클릭하면 generate new private key 라는 버튼을 발견 할 수 있다. 그걸 클릭하면 Certificate()에 들어갈 정보를..

함수의 스코프

자바스크립트 함수에서 전역변수로 사용한 경우 var로 선언하여 로컬변수로 선언하였더니 전역변수에 영향을 미치지 않았다. 파이썬의 함수안 로컬변수는 전역변수에 영향을 주지 않는다. 그러므로 함수가 실행이 끝난뒤 로컬 변수는 사라진다. 영향을 주고 싶다면 함수네에서 global로 변수를 선언해야 한다. 하지만 리스트나 딕셔너리는 레퍼런스를 하므로 영향을 받는다.