본문 바로가기

전체 글

(459)
[Tkinter] 14장. 위젯의 focus() 메서드 ttk.Entry 위젯이 상속하는 클래스는 아래와 같습니다. 위의 이미지에서 확인할 수 있듯 ttk.Entry는 Misc 클래스를 상속하고 있으며, 이로 인해 Entry와 같이 사용자의 입력을 받는데 사용되는 위젯들엔 focus() 메서드를 사용할 수 있습니다. 예로 애플리케이션 실행 후 2번 Entry에 원하는 문자를 입력하려면 마우스나 Tab으로 2번 Entry를 선택해야 합니다. 하지만 2번 Entry에 대하여 focus() 메서드를 호출해 주면, 애플리케이션 실행 시 자동으로 2번 Entry가 선택됩니다. 아래 이미지에서 2번 Entry에 커서가 위치해 있고 가장자리가 파란색으로 보이네요. import tkinter as tk import tkinter.ttk as ttk class MainWin..
[kivy-004] kivy 아키텍처 kivy 기반의 애플리케이션을 개발함에 있어 kivy 내부 구조에 대한 이해는 기본이라고 생각하며, 아래의 kivy 아키텍처를 통해 kivy는 문서화가 상당히 잘 되어 있음을 실감합니다. kivy 내부적으로 모듈화(modularity)와 추상화(abstraction)가 잘 되어 있는 듯한데, 정말 그러한지 차차 확인해 봐야 겠네요. 아래는 간단한 애플리케이션을 실행하면 표시되는 log 정보로 kivy 내부적으로 이것 저것 많이 실행되네요. [INFO ] [Logger ] Record log in C:\Users\USR\.kivy\logs\kivy_20-11-14_24.txt [INFO ] [deps ] Successfully imported "kivy_deps.gstreamer" 0.3.1 [INFO ]..
[kivy-003] Hello World 간단한 애플리케이션 만들어 보기 1 본 글 및 이후 글을 통해 kivy 홈페이지의 'Getting Started'를 따라해 본 결과를 적어보고자 합니다. kivy를 이해하기 위한 첫번째 애플리케이션은 Pong Game 튜토리얼입니다. Pong Game 코드를 무작정 따라해 본 바, 감은 오는데 왠지 기초가 많이 부족하다 싶어 'Create an application'으로 먼저 시작합니다. 화면에 표시되는 위 이미지에 대한 kivy 코드는 다음과 같습니다. tkinter와는 달리 실행된 애플리케이션이 화면 중앙에 위치해서 좋네요. from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return..
[Python] 파이썬 코딩 스타일 가이드, PEP 8 PEP 8 : Style Guide for Python Code Author : Guido van Rossum, Barry Warsaw, Nick Coghlan 1) 들여쓰기 (Identation) 4개의 빈칸 사용 (use 4 spaces per identation level) # PEP 8에 기술되어 있는 들여쓰기 가이드 (일부) foo = long_function_name(var_one, var_two, var_three, var_four) def long_function_name( var_one, var_two, var_three, var_four): print(var_one) foo = long_function_name( var_one, var_two, var_three, var_four) if..
[Tkinter] 13장. Entry Look and Feel! 화면에서 tkinter.Entry 및 ttk.Entry는 위의 이미지와 같이 보입니다. tkinter.Entry와 ttk.Entry는 가장자리 모양을 제외하면 일단 동일해 보이네요. 위 화면에 대한 코드는 아래와 같습니다. Entry 위젯은 보통 텍스트 입력을 받기 위해 사용되기 때문에 Label처럼 text 옵션이 있는 것이 아니라 textvariable 옵션이 있습니다. 파이썬과 Tcl/Tk는 원래 독립적인 프로그래밍 언어/환경이기 때문에 Tcl/Tk가 인식 가능한 데이터 타입을 사용해야 합니다. 이러한 이유로 tkinter.StringVar 클래스로 만든 객체를 Entry의 textvariable에 전달해야 합니다. 마지막 Entry엔 X축 스크롤바가 연결되어 있습니다. ..
[Tkinter] 12장. Button Look and Feel! 화면에서 tkinter.Button과 ttk.Button은 위의 이미지와 같이 보입니다. 동일하게 코드를 구현했음에도 Label과는 달리 tkinter.Button과 ttk.Button의 모양이 조금 다르네요. 위 화면에 대한 코드는 아래와 같습니다. Button 객체를 생성하여 화면에 표시하는 방법은 Label과 동일합니다. 다만, Button이라는 특성상 버튼이 눌렸을 때, 정의한 기능을 실행하기 위해 Button 객체 생성 시 command 옵션으로 실행할 메서드(또는 함수)를 정의해야 합니다. 각 위젯의 configure (또는 config) 메서드를 이용해 이미 정의한 또는 정의하지 않은 위젯의 옵션을 변경할 수 있습니다. 각 위젯의 옵션 변경을 위해 예로 self.l..
[Tkinter] 11장. Label (ttk) 2단계 ttk.Label 레벨 2 ttk.Label에 대한 속성(옵션)들은 사용자에 의해 변경이 가능하며, 대략적인 사항은 아래와 같습니다. Label 위젯 내에서 텍스트가 표시되는 위치 Label 텍스트 색상 Label 텍스트 배경 색상 Label 위치에 이미지 삽입 Label 텍스트 (Font) 스타일 Label 상태 변경 (활성 vs. 비활성) Label 텍스트에 밑줄 적용 아래의 표는 ttk.Label에 대하여 설정 가능한 속성을 나타냅니다. STANDARD OPTIONS class, compound, cursor, image, style, takefocus, text, textvariable, underline, width WIDGET-SPECIFIC OPTIONS anchor, background, ..
[Tkinter] 10장. Label 2단계 tkinter.Label 레벨 2 tkinter.Label에 대한 속성들은 사용자에 의해 변경 가능하며, 대략적으로 다음과 같습니다. Label 위젯 내에서 텍스트가 표시되는 위치 Label 텍스트 색상 Label 텍스트 배경 색상 Label 가장자리 경계선 굵기 Label 위치에 이미지 삽입 Label 텍스트 스타일 Label 상태 변경 (활성 vs. 비활성) Label 텍스트에 밑줄 적용 아래의 표는 tkinter.Label에 대하여 설정 가능한 속성을 나타냅니다. STANDARD OPTIONS activebackground, activeforeground, anchor, background, bitmap, borderwidth, cursor, disabledforeground, font, foreg..