[tkinter] 그림파일 출력 방법 1. PIL module이 없다고 나오면 아래 명령으로 설치한다 pip install pillow 2. pyimage1 doesn't exist 메세지가 나옴 tk.Tk ()를 다시 호출하여 코드에 2 개 이상의 창이 만들어지면 이런 메시지가 나온다 문제는 모든 변수가 기본적으로 첫 번째 루트 창에 연결되고 두 번째 창에서는 사용할 수 없다는 것이다. 적절한 수정은 tk.Tk ()로 호출되는 메인 윈도우를 가지도록 코드를 구조화하고 다른 모든 윈도우는 tk.Toplevel로 시작하는 것이다. 어떤 프로그램도 tk.Tk ()를 두 번 이상 호출해서는 안된다 빠른 수정은 PhotoImage에 출력을 원하는 마스터(창 이름)를 제공하는 것입니다. 예) photo = ImageTk.PhotoImage(img, ..
[tkinter] Button 및 Button Event 처리 1. 버튼 생성 from tkinter import * import tkinter.ttk as ttk root = Tk() Button(root,text="Open") root.mainloop() 윈도우(창)이 하나 열리면서 Open으로 표시되는 Button이 생성된다 2. Button 설정 예제 btn_one = Button(root, text="4인 ", width=12, command= lambda: select_person(4)) btn_one.configure( font = ( 'Ubuntu Condensed', 15, 'bold')) btn_one.pack(side="right", padx=5, pady=5) - root 창에 버튼을 하나 추가한다. - text="4인 " 버튼에 표시되는 내용..
썸네일 [Tkinter] Listbox 사용법 1. 리스트 박스는 여러 문자열을 위에서 아래로 나열하는 경우에 사용한다. 2. 리스트박스 생성 from Tkinter import * master = Tk() listbox = Listbox(master) => master 윈도우내에 Listbox를 생성한다 listbox.pack() => master 윈도우내에 Listbox를 추가한다 listbox.insert(END, "a list entry") => Listbox에 원하는 문장을 넣는다 for item in ["one", "two", "three", "four"]: listbox.insert(END, item) => item을 순서대로 listbox에 넣는다 mainloop() 3. Listbox에 원하는 것을 추가/삭제 1) 추가 listbox..
[python] 터미날 수신 Byte 코드 변환 및 \n 제거 라즈베리파이 3B+에서 socat를 사용한 가상 시리얼 포트를 이용한 통신 프로그램을 작성중에 Python에 대한 이해 부족으로 약간의 시간을 소비하였다 1. 터미널에서 수신한 메시지 b'222\n' 2. type(b'222\n') 유니코드가 아니라 bytes 코드이다 (bytes는 원시 이진 데이터로 사용되어지거나 1바이트 문자로 고정을 위해 사용되어집니다.) 3. 맨 뒤에 붙은 \n을 제거하기 위한 작업 1) bytes -> str(string)로 변환 b = s.encode('utf-8') ( s: bytes class, b: str class ) 2) rstrip()을 사용하여 \n 제거 b = b.rstrip() 4. 추가 설명 1) 'test string\n'.rstrip() 'test str..
썸네일 [라즈베리파이] 리눅스 가상 시리얼 포트 설정(socat) 라즈베리파이 3B+에서 시리얼 통신을 시험해야 하는 경우에 socat 명령어를 사용하여 시험한다 1. socat 설치 sudo apt install socat 2. 가상 포트 활성화 socat -d -d pty,raw,echo=0 pty,raw,echo=0 설치가 되면 아래의 메시지가 나온다 명령어에서 수신이 띄어쓰기를 정확히 해야한다. 가상의 포트 1 번과 2번 사이에 loopback이 형성되었다 3. 시험 방법 1) 위 (2번에사 사용한 ) 터미널 창을 닫으면 안된다.(가상 포트가 사라진다) 새로운 터미널 창을 열어서 아래의 명령을 준다 loopback을 통해 수신된 문자가 출력되게 만들어준다 2) 새로운 터미널 창을 열어준다 echo 명령을 사용하여 문자를 송신한다 4. 통신 프로그램에 적용 시리얼..
썸네일 [라즈베리파이] 라즈베리파이3B+ Uart 및 Serial 통신 라즈베리파이 3B+에서Serial(Uart)를 사용하기 위해서는 Bluetooth 기능을 꺼야한다(disable) 1. GPIO Pin map 라즈베리파이 핀 맵으로 검색하시기 바랍니다. 라즈베리파이 3B+ 에서는 GPIO 8번( UART Tx) 10번( UART Rx) 6번( Ground, GND)를 사용 2. 라즈비안 시리얼 포트 확인 ls -l /dev 명령어를 사용하여 serial 포트를 확인한다. ttyAMA0는 하드웨어로 할당된 시리얼포트 ttyS0는 소프트웨어적인 시리얼포트 -> 데이터 송수신이 불안정할 수 있다 위 화면은 Bluetooth를 비활성화(disable) 시킨 상태에서 시리얼 포트를 확인한 것이다 3. 시리얼 포트 활성화 1) 터미널 환경에서 sudo raspi-config =>..