본문 바로가기

전체 글377

Pyqt. 탭 위젯.Tab Widget 아래 그림 같은걸 Tab Widget이라고 한다. 우리가 흔히 보는 GUI 중 하나이다. import sys from PyQt5.QtWidgets import * class MyWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Test") self.setGeometry(1000, 200, 700, 700) self.ta1 = QTableWidget(self) self.ta1.resize(400, 500) self.ta1.setColumnCount(3) table_column=["첫번째 열" , "두번째 열" , "Third 열"] self.ta1.setHorizontalHeaderLabels(table_colu.. 2021. 11. 3.
Pyqt.splitter에 대하여 Splitter 기능 화면 쪼개기. 분리하기 1. Splitter 객체 생성 2.addwidget으로 스플릿터에 추가할 위젯들 하나씩 추가 3.setOrientation 메소드로 스플릿을 horizontal로 할건지 vertical로 할건지 결정( Default는 horizontal임) 4.setsize 메소드로 스플릿된 대상들의 사이즈 결정 이때 스플릿 모드가 horizontal이냐 vertical 에 따라 setsize에 들어가는 값이 x축길이. y축길이로 달라짐 예시코드 화면에 스플릿터가 있고 왼쪽에는 텍스트 에디터, 오른쪽에는 트리가 있음 버튼을 누르면 왼쪽의 텍스트 에디터가 열렸다가 /닫혔다가 하는 형태로 구현함 import sys from PyQt5.QtWidgets import * from .. 2021. 11. 1.
PyQt. Drag & Drop에 대하여 Drag Drop은 생각보다 내용이 복잡해서 전체적인 개요를 현재 이해하지 못한 상태다. 일단 아는데까지만 대강 정리한다. 정리한 내용에 오류가 있을 수 있음 내가 내용 파악하는데 진입장벽을 느낀 이유는 Drag & Drop 이 Model/Veiw Programming과 관련이 있기 때문이다. Model/Veiw에 대해서 날 잡아서 한번 하긴 해야되는데 인터넷에 한글로 되어있는 강의들은 대부분 Model/View Programming을 사용하지 않은 예제가 많은것 같다. 사실 Model/View 프로그래밍이 뭔지 아예 아는것이 없어서 뭐라고 이야기 자체를 못하겠다. 내가 자주 사용하는 QTree, QTable 도 보면 QTreeWidget 클래스가 있고 QTreeview 클래스가 있는데 QTreeview.. 2021. 11. 1.
PyQt. QstackedWidget 1. 개요 QStackWidget 이 있고, 그 하위에 Qwidget 들이 여러개 포함되는 형태로 구성됨 똑같은 크기의 도화지에 여러개의 Widget을 전부 쌓아놓고 한번에 1개씩만 유저에게 보여주는 Widget이 stack Widget이다. 2. 하위 page 갯수 늘리기, 순서바꾸기 3. 현재 선택된 page 변경하는 메소드 import sys from PyQt5.QtWidgets import * from PyQt5 import uic #UI파일 연결 #단, UI파일은 Python 코드 파일과 같은 디렉토리에 위치해야한다. form_class = uic.loadUiType("test_stack.ui")[0] #화면을 띄우는데 사용되는 Class 선언 class WindowClass(QMainWindo.. 2021. 10. 31.
파이썬. 데이터 타입 지정하기. 자료형 지정하기 파이썬 3.6 부터 유저가 직접 타입지정이 가능해졌다. 사용방법은 아래와 같다. 변수(객체) 이름: 자료형 =초기값 (초기값은 생략가능) 변수(객체) 이름: 자료형 ex) input : int input2 : int =1234 이런식이다. 사용방법은 이게 끝이다. 꼭 초기값을 셋팅 해야되는건 아니고 타입지정만 해도된다. 또 int. str 등의 기본자료형 뿐만 아니라 클래스로도 지정이 가능하다. 메소드의 파라미터 타입도 지정가능함 class test_class(): def method1(self): print("클래스 메소드 1 실행") def test_fun(input1:test_class): input1.method1() 메소드의 return 값의 타입도 지정 가능함 def fun1() -> str .. 2021. 10. 31.
파이썬. 시리얼통신 관련 설치 pip install pyserial 샘플 코드 및 개요 write 메소드 관련 주의사항(데이터 타입이 byte 이다!!) 현재 연결 가능한 COM Port 목록 출력하기 import serial.tools.list_ports ports = serial.tools.list_ports.comports() for i in ports: print(i.name) print(i.description) >>> COM4 >>> Arduino Uno(COM4) serial.tools.list_ports.comports() 는 현재 컴퓨터에 연결된 COM 포트들의 목록을 List 형태의 데이터로 리턴해준다. 이때 리스트 안에 담겨있는 각 데이터들의 타입은 serial.tools.list_ports.ListPortI.. 2021. 10. 29.
파이썬. 초를 시,분,초 형태로 만드는것에 대하여 import datetime input1 = datetime.timedelta(seconds=274) input2 = datetime.timedelta(seconds=572) print(input1) print(input2) >> 0:04:34 >> 0:09:32 초를 적으면 위와 같이 시,분,초 형태로 바꿔준다. 근데 이렇게만 보면 input1, input2 가 str 타입인줄 알 수 있는데 str타입은 아니다. import datetime input1 = datetime.timedelta(seconds=274) input2 = datetime.timedelta(seconds=572) print(type(input1)) >>> 데이터 타입 참조. import datetime input1 = dateti.. 2021. 10. 28.
파이썬. 딕셔너리 자료형. dictionary 자료형 딕셔너리 자료형은 c언어에는 존재하지 않고 c++ STL에서는 map 자료형이랑 비슷하다. 배열인데 배열의 인덱스가 자유로운 배열이랄까? (c언어의 배열은 인덱스가 무조건 정수 밖에 안된다) 근데 딕셔너리 자료형은 인덱스 자리에 정수,소수,문자열 아무거나 다 된다. c언어의 배열은 int arr[10]; arr[0]= 5 arr[1] =2 이런식인데 int arr[10]; arr[0]= 5; arr[1] =2; 파이썬의 딕셔너리는 인덱스 안에 다양한게 들어간다. (아래 코드 참조) arr = {} #arr이 딕셔너리라고 선언하는 방법이다. #참고로 arr = [] 는 list 선언하는 방법이니까 헷갈리지 말자. arr['김철수'] = 1234 arr[534] = "오징어" 여기서 김철수, 534를 딕셔너.. 2021. 10. 25.
파이썬 정규식 예시들 split 함수 특정 패턴에 해당되는 것만 걸러주기 무슨말이냐면 아래 예시의 문장에서 언더바만 제외한 결과를 리턴 받고싶으면 str = "abc_is the_problem" re.split('_' , str) 근데 사실 split 함수는 정규식 말고 문자열에서도 제공하는 함수이다. 차이점은 re.split은 저렇게 단순 문자 하나로 구분하는게 아니라 정규표현식을 넣을수 있다는게 차이점이다. 2021. 10. 23.