앞서 잠시 살펴보고 버릴려고 했던 Tk 로 그래도 간단하게나마 뭔가 만들어나 볼까 해서 나온게 사진을 불러 올 수 있는 버튼과 사진크기 출력해주는 라벨만 가져다 붙였다.


디자이너 같은게 있다고 들었지만 딱히 파고들 만한게 아니였기 때문에 다른 툴은 사용하지 않았다. 이런 GUI 만들때는 무조건 디자이너 툴을 사용하는게 맞다는 생각이 든다.

# coding: utf-8
"""
Tkinter 와 media 모듈을 이용, 간단한 이미지 뷰어
버튼을 눌러 파일을 선택 및 이미지로 불러온 다음, 새창에 출력
메인 윈도우에는 이미지의 크기를 출력 
"""

from Tkinter import *
import media

class mainUI():
    def __init__(self, parent): # 생성자 시작
        self.parent = parent    

        # 라벨 값 변경을 위한 객체 선언
        self.picWidth = StringVar()
        self.picHeight = StringVar()
        
        self.initUI()
        
    def initUI(self):
        self.parent.title("Raven") # 메인 윈도우 타이틀 설정
        self.buttonLoadFile = Button(self.parent, # 부모 윈도우 설정
                                     text = "파일 불러오기", # 버튼 타이틀
                                     command = self.loadFile) # 클릭시 불러올 함수
        self.buttonLoadFile.place(x = 20, y = 10)

        # Label for height
        self.labelHeight = Label(self.parent, text = "Height : ") # 라벨 설정
        self.labelHeight.place(x = 20, y = 50) # 라벨 좌표
        self.labelInfoHeight = Label(self.parent, textvariable = self.picHeight) # 값 출력을 위한 라벨
        
        # Label for Width
        self.labelWidth = Label(self.parent, text = "Width : ")
        self.labelWidth.place(x = 20, y = 80)
        self.labelInfoWidth = Label(self.parent, textvariable = self.picWidth)

    def loadFile(self):
        self.pic_file = media.load_picture(media.choose_file()) # 파일을 선택하고 이미지로 불러들여서 객체화
        media.show(self.pic_file)                               # 이미지를 새창에 출력
        self.showInfo()                                         # 이미지 정보 출력을 위한 메소드콜
    
    def showInfo(self):
        self.picHeight.set(media.get_height(self.pic_file)) # Height
        self.labelInfoHeight.place(x = 80, y = 50)

        self.picWidth.set(media.get_width(self.pic_file)) # Width
        self.labelInfoWidth.place(x = 80, y = 80)

    # def loadFile(self):
    #     self.C = Canvas(self.parent)        
    #     self.pic_file = PhotoImage(file = media.choose_file())
    #     self.image = self.C.create_image(0, 
    #                                      0, 
    #                                      image = self.pic_file)
    #     self.C.pack()

def main():
    mainWindow = Tk()
    mainWindow.geometry("300x150+300+300") # 메인 윈도우의 창크기와 위치
    app = mainUI(mainWindow)
    mainWindow.mainloop()

if __name__ == "__main__":
    main()

저작자 표시
신고

'컴퓨터 언어 > Python' 카테고리의 다른 글

PyGame으로 기본 창 띄우기  (0) 2013.01.08
Tkinter 를 이용, 간단한 이미지 뷰어 제작  (0) 2013.01.06
Button Module  (0) 2013.01.06
창 띄우기  (0) 2013.01.05
media 모듈을 이용한 이미지 띄우기  (0) 2013.01.05
파이썬 학습과제 - 1  (0) 2012.10.03
TAG , , ,


티스토리 툴바