python-GUI之tkinter的學習

 

最近看了嗶哩嗶哩的python的學習,直接看代碼吧,以後會更新

先來個基礎的

import tkinter as tk #導入包

app = tk.Tk() #抽象出一個GUI
app.title("first GUI") #設置這個窗口的標題
thelable = tk.Label(app, text = "這是一個窗口") #標籤,要先把參數app給傳進去,比較常用
thelable.pack()  #這是對這個標籤進行排版,可以在裏面設置參數自己設置

app.mainloop()#必須要加

加了個按鈕,點擊按鈕就可以出現hello

import tkinter as tk

class App:
    def __init__(self, master):#構造函數,對App進行初始化
        frame = tk.Frame(master)#按鈕框架
        frame.pack(side = tk.LEFT,padx = 100,pady = 100)#設置參數自定義

        self.hi_here = tk.Button(frame, text = 'hello',fg='blue',bg='black',command = self.hello)#bg,fg背景前景色,command爲按下按鈕發生的事件
        self.hi_here.pack()
    def hello(self):
        print("hello")


root = tk.Tk()
App(root)

root.mainloop()

這次添加一個圖片,文字在坐,圖片在右邊

from tkinter import *
import tkinter as tk
root = tk.Tk()

textlabel = tk.Label(root, text = "非18\n不可觀看",#可以轉義字符
                     justify = LEFT,#設置左對齊
                     padx = 10)
textlabel.pack(side = tk.LEFT)

photo = PhotoImage(file = '18.gif')#得到圖片,要是gif類型的
imglabel = tk.Label(root,image = photo)#添加圖片
imglabel.pack(side = tk.RIGHT)
root.mainloop()

圖片和文字在一起

from tkinter import *
import tkinter as tk
root = tk.Tk()
photo = PhotoImage(file = '18.gif')#得到圖片,要是gif類型的
textlabel = tk.Label(root, text = "非18\n不可觀看",#可以轉義字符
                     justify = LEFT,#設置左對齊
                     padx = 10,
                    image = photo,
                    compound = CENTER)#設置爲圖片和文字混合,圖片在中間
textlabel.pack(side = tk.LEFT)
root.mainloop()

圖片和文字加按鈕,按下按鈕文字變換

from tkinter import *

def change():
    var.set("小孩子不許騙人")


root = Tk()
frame1 = Frame(root)#如果是from tkinter import *,則調用Frame的時候就不用tk.Frame()
frame2 = Frame(root)

var = StringVar()
var.set("18才能看,你18了麼")
textlabel = Label(frame1,
                  textvariable = var,#將文字設置成可變的,類型應該爲StringVar
                  justify = LEFT)
textlabel.pack(side = LEFT)

photo = PhotoImage(file = '18.gif')
imglabel = Label(frame1, image = photo)
imglabel.pack(side = RIGHT)

button = Button(frame2,text ='我已18',command = change)
button.pack()

frame1.pack(padx = 10, pady = 10)
frame2.pack(padx = 10, pady = 10)

mainloop()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章