【Python】tkinter 재사용 할 것 같은 코드

5560 단어 Tkinter파이썬

가져오기


import tkinter as tk

메인 창


#メインウィンドウ生成
tk1 = tk.Tk()
# ウィンドウサイズを指定
tk1.geometry("900x600")
#ウィンドウタイトルを指定
tk1.title("TextConv 2020")
#ウィンドウサイズの変更可否設定
tk1.resizable(0,0)
# ウィンドウの背景色
tk1.configure(bg="white")

tk1.mainloop()

tk1.withdraw()# 윈도우의 표시를 억제는 붙지 않는다

메뉴 바


from tkinter import filedialog

def m_load():
    typ = [('テキストファイル','*.txt')] 
    dir = 'C:\\'
    file = filedialog.askopenfilename(filetypes = typ, initialdir = dir) 
    f = open(file)
    fdata = f.read()  # ファイル終端まで全て読んだデータを返す
    textField.delete('1.0', 'end')
    textField.insert('1.0', fdata)
    f.close()

def m_save():
    file = filedialog.asksaveasfilename()
    txt = textField.get('1.0', 'end -1c')
    f=open(file, mode='w') 
    f.write(txt)
    f.close()

#メニューバー作成 
men = tk.Menu(tk1) 

#メニューバーを画面にセット 
tk1.config(menu=men) 

#メニューに親メニュー(ファイル)を作成する 
menu_file = tk.Menu(tk1) 
men.add_cascade(label='File', menu=menu_file) 
men.add_cascade(label='File Load', command=m_load) 
men.add_cascade(label='File Save', command=m_save) 

패널 창


##  orient : 配置(vertical or horizontal)
##  bg : 枠線の色
# pack
##  expand :可変(True or False(固定)
##  fill : スペースが空いている場合の動き(tk.BOTH 縦横に広がる)
##  side : 配置する際にどの方向からつめていくか(side or top ・・・)

pw_main = tk.PanedWindow(tk1, orient='horizontal')
pw_main.pack(expand=True, fill = tk.BOTH, side="left")

pw_left = tk.PanedWindow(pw_main, bg="cyan", orient='vertical')
pw_main.add(pw_left)
pw_right = tk.PanedWindow(pw_main, bg="white", orient='vertical')
pw_main.add(pw_right)

프레임


mainFrame = tk.Frame(pw_left, width=450, height=600, bg="white")
#propagation を False にすると,フレームの大きさは width, height 
#Trueの場合は、中のウィジェットにくっつく
mainFrame.propagate(False)
mainFrame.pack()

클립보드


def c_button1_click():
    # クリップボードから読み込み
    MOji1 = tk1.clipboard_get()
    #txt1.insert(0,"test")
    #insert()メソッドは、第一引数に位置を、第二引数に挿入する文字を指定します。
    textField.delete('1.0', 'end')
    textField.insert('1.0', MOji1)
    #textField.insert('1.0', 'あいうえお\nアイウアイウ\nabcABCabcABC\n123123')

def c_button2_click():
    # クリップボードから読み込み
    textField.clipboard_append

#ボタン(クリップボードから貼付)
c_button1 = tk.Button(clipboardFrame, text='クリップボードから貼付',command=c_button1_click,bg="yellow")
c_button1.place(x=10, y=5)

#ボタン(クリップボードにコピー)
c_button2 = tk.Button(clipboardFrame, text="クリップボードにコピー", command=c_button2_click,bg="gold")
c_button2.place(x=150, y=5)

텍스트 영역


# スクロールバー
scrollbar = tk.Scrollbar(textFrame)
scrollbar.pack(side=tk.RIGHT, fill="y")

# テキストボックス
textField = tk.Text(textFrame, width=500, height=500, bd=5, relief="groove")
textField.propagate(False)
textField.pack(side=tk.LEFT, padx=(0, 0), pady=(0, 0))
textField["yscrollcommand"] = scrollbar.set
textField.insert('1.0', 'あいうえお\nアイウアイウ\nabcABCabcABC\n123123')

padx : 외부 옆의 틈새 = 10 양측 = (10,10) 왼쪽, 오른쪽
pady: 외부 수직 틈
절대 좌표가 아니라 전·왼쪽과의 상관 위치를 나타내므로
(,)를 사용할 때는 (n,0)과 뒤를 0으로 하는 것이 설정하기 쉽다.
기본값은 Tk.CENTER.
그 밖에 Tk.W(왼쪽 요세), Tk.E(오른쪽 요세), Tk.N(위 요세), Tk.S(하 요세),
Tk.NW ​​(왼쪽 위), Tk.SW (왼쪽 아래), Tk.NE (오른쪽 위), Tk.SE (오른쪽 아래)

· 텍스트 상자에 문자 세트
textField.insert(tk.END,"2020")
첫 번째 매개 변수는 문자를 설정하는 위치
「tk.END」로 하면 텍스트 박스의 마지막에 추가한다
· Entry에서 문자열을 가져옵니다.
textField.get
· 텍스트 상자의 문자열을 지웁니다.
textField.delete(0,tk.END)

· 수치 1.0 또는 문자열 "1.0"
텍스트 위젯의 첫 문자 위치는 1.0
· "end"or tk.END
텍스트 상자의 끝

체크 버튼


chk1 = tk.Checkbutton(SideFrame1, text='行',bg="lightgreen")
chk1.place(x=180, y=7)

버튼


S_button1 = tk.Button(SideFrame2, text="入替", command= lambda:c_button_click(10),bg="salmon")




import tkinter.ttk as ttk

note = ttk.Notebook(tk1)
tab = tk.Frame(note,height=100,width=100)

note.add(tab, text="Tab")

note.pack()

jpg 표시


#tkinterはjpg表示対応していないため
from PIL import Image, ImageTk 

img = Image.open('img.jpg')
w = img.width # 横幅を取得                                                      
h = img.height # 縦幅を取得
#画に合わせて横を縮小                                 
img = img.resize(( int(w * (600/h)), int(h * (600/h)) ))
img  = ImageTk.PhotoImage(img)

canvas = tk.Canvas(bg="pink", width=400, height=600)
canvas.place(x=0, y=0)
canvas.create_image(0, 0, image=img, anchor=tk.NW)

TkinterDnD2 설치


conda install -c gagphil1 tkinterdnd2



전역 변수를 모듈간에 공유



cfg.py 만들기
x = 0

한 모듈, 가져오기, x=설정
import cfg
cfg.x = 1

다른 쪽으로 로드
import cfg
import mod
print(cfg.x)

좋은 웹페이지 즐겨찾기