목록Python (138)
군침이 싹 도는 코딩
파이썬에서 웹소켓 기술을 사용하기 위해서는 websockets 라는 모듈을 사용해야한다 이 모듈은 파이썬의 비동기 ( asynchronous ) 처리를 위한 asyncio 라는 표준모듈을 기반으로 개발 되었다 동기 호출과 비동기 호출 방식 동기 호출 방식은 일을 순차적으로 처리하는것이다 예를 들어 햄버거 세트를 주문 받으면 햄버거를 만든다 > 감자튀김을 튀긴다 > 콜라를 따른다 순으로 차례대로 일을 처리하는것을 말한다 비동기 호출 방식은 동기 호출 방식보다 일을 효율적으로 처리한다 햄버거 세트를 주문 받으면 감자튀김을 튀김기에 넣고 감자튀김이 튀겨지는 동안 햄버거를 만드는 식으로 어떤 일을 처리를 기다릴때 다른일을 하는것을 말한다 컴퓨터 작업으로 치면 데이터를 요청하고 기다리는 동안 다른작업을 수행하는식..
1. pycharm 패키징 완료후 ui로 사용한 ui 파일이 같이 패키징 되지 않았던 문제 pyinstaller --add-data "포함시킬 파일;." # --add-data 옵션을 통해서 처리했다 포함시킬 파일이 여러개라면 여러번 써주면 된다 2. QtWebEngineWidgets 이 없다는 오류 이 오류는 main.py에 임포트 과정에서 애스터리스크 (*) 를 사용해서 개발하고 마무리 과정에서 따로 임포트 해주지않아서 발생한것으로 생각된다 pyinstaller --hidden-import PyQt5.QtWebEngineWidgets # -- hidden-import 옵션을 사용해서 처리했다 3. 개발에 사용된 이미지와 패키징한 게임이 실행되지 않는 문제 이 오류는 이미지와 패키징한 게임을 실행하는 ..
import sys from PySide2.QtWidgets import * from PySide2.QtCore import * class Form(QWidget): def __init__(self): super(Form, self).__init__() # V 박스 생성 self.vb = QVBoxLayout() # 메인 레이아웃으로 V 박스를 지정 self.setLayout(self.vb) # 라인 에딧 생성 self.ln = QLineEdit() # 라인 에딧의 정렬 속성을 오른쪽 정렬로 변경 self.ln.setAlignment(Qt.AlignRight) # 라인 에딧의 폰트 크기와 굵기를 조절 self.ln.setStyleSheet('font-size: 24px;' 'font-weight: bol..

# 폼 레이아웃 생성 self.form = QFormLayout() # 메인 폼의 메인 레이아웃으로 지정 ( 이때 화면의 크기가 최소화 된다 ) self.setLayout(self.form) # 라인 에딧을 생성 self.lnName = QLineEdit() # 라인 에딧을 폼 레이아웃에 넣어준다 self.form.addRow("이름 : ", self.lnName) # 라인 에딧2를 생성 self.lnPNum2 = QLineEdit() # 라인 에딧2를 폼 레이아웃에 넣어준다 self.form.addRow('보호자연락처: ', self.lnPNum2) # 라인 에딧 추가 self.lnId = QLineEdit() # 버튼 추가 self.btnFindId = QPushButton('중복검사') # H 박스..
from PySide2.QtWidgets import * # 개발할때 임포트를 하나씩 적기 귀찮을때 이런식으로 임포트 옆에 애스터리스크를 찍어서두고 완료된 후에 하나씩 적어주면 편하다
import sys from PySide2.QtWidgets import QApplication, QWidget, \ QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, QLabel class Form(QWidget): def __init__(self): super(Form, self).__init__() # 메인창에 타이틀 제목을 표시한다 self.setWindowTitle('레이아웃 테스트') # V 박스 하나를 만든다 self.vb = QVBoxLayout() # V 박스를 메인창에 세팅한다 self.setLayout(self.vb) # H 박스 3개를 만든다 self.hbTop = QHBoxLayout() self.hbMid = QHBoxLayout() sel..
pip install -U pyinstaller # pyinstaller 를 설치한다 pyinstaller -w -F main.py # main.py 소스코드를 main.exe로 생성 # 터미널에 해당 코드를 입력한다 -w 는 윈도우 실행시 콘솔창이 뜨지 않게 하는 옵션 -F 는 단일 실행 파일로 생성하는 옵션이다
런처를 만들던 중 로그인 화면 > 런처 화면으로 넘어갈때 로그인을 성공해도 런처가 바로 종료되는 문제 발생 self.game_launcher = GameLauncherApp() # 문제점은 로그인에 성공해도 런처 객체가 바로 소멸하여 프로세스가 종료되는것이였다 이를 해결하기위해서 런처 객체를 로그인 객체 안에 멤버 변수로 포함시켰다 game_launcher.show() > self.game_launcher.show() # 그 다음 로그인 버튼을 눌렀을때의 런처 실행 동작을 self.game_launcher.show() 로 바꿨다 game_launcher.show() 를 사용하면 GameLauncherApp() 의 객체를 참초하는 게임런처에서 실행시켜주는것이라 GameLauncherApp() 객체가 Log..