日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?GUI程序類寫法與Label介紹_python

作者:小魚干兒? ? 更新時間: 2022-11-11 編程語言

GUI應用程序類的經典寫法 — 面向對象

通過類Application組織整個GUI程序,類Application繼承了Frame以及通過繼承擁有了父類的特性,通過__init__初始化窗口中的對象,通過createWidget()創建窗口中的對象

Frame框架是一個Tkiner的組件,表示一個矩形的區域,一般作為容器使用,可以放置其他組件,從而實現復雜的布局

經典的GUI程序類的寫法

效果的基本示意圖

from tkinter import *
from tkinter import messagebox
class Application(Frame):  # 繼承Frame
    """
    一個經典的GUI程序類的寫法
    """
    def __init__(self, master=None):
        """
        構造器,用來構造組件對象
        :param master:
        """
        super().__init__(master)  # super() 代表的是父類的定義,而不是父類的對象
        self.master = master
        self.pack()
        self.createWidget()  # 再組件中創建其他組件
    def createWidget(self):
        """創建組件,可以構造函數中調用"""
        self.btn01 = Button(self)
        self.btn01['text'] = '點擊送花'
        self.btn01.pack()
        self.btn01['command'] = self.songhua
        # 創建一個退出按鈕
        # command綁定事件對象(相應函數)
        self.btn02 = Button(self, text='退出', command=root.destroy)
        self.btn02.pack()  # 通過布局管理器放到組件中
    def songhua(self):  # e就是事件對象
        messagebox.showinfo("Message", "送你一朵玫瑰花")
        print('送你玫瑰花')
if __name__ == '__main__':
    root = Tk()  # 根窗口對象
    root.geometry("400x100+300+300")
    root.title("一個經典那的GUI程序的測試")
    # 創建一個Application對象
    app = Application(master=root)  # master=root 創建的對象放到root里面
    root.mainloop()

實際效果圖

Label 的介紹

參數的介紹

Label(text='程序員', width=10, height=2, bg='blue',fg='white',font=("黑體",30),justify='center')
"""
	text 文本內容
	width 寬度 一個英文占1個,一個漢字占2個
	height 高度
	bg  背景
	fg  前景色
	font=() 指定字體和大小
	justify 多行文字的對齊方式
""" 

使用Label標簽

添加內容,設置高度寬度,背景顏色,前景色,修改顯示的字體和字號

		self.label01 = Label(self,text='程序員',width=10,height=2,bg='black',fg='white')
        self.label01.pack()
        self.label02 = Label(self, text='程序員2', width=10, height=2, bg='blue',
                             fg='white',font=("黑體",30),justify='center')
        self.label02.pack()

使用Lable標簽顯示圖像

注意要將圖片對象聲明為全局變量

# 顯示圖像
        global photo  # 將phone聲明成全局變量,如果是局部變量,本方法執行完圖像就會銷毀,窗口顯出不出來
        photo = PhotoImage(file="py.png")  # 圖像的路徑,有些照片的類型python可能不支持,需要額外注意
        self.label03 = Label(self,image =photo,width=300,height=200)
        self.label03.pack()

多行文字對齊的方式選擇

		self.label04 = Label(self, text="圖片\n我有一個圖片\n一個好看的圖片", borderwidth=1,relief="solid",justify='right')
        self.label04.pack()

全部源代碼

"""測試Label組件的基本用法,使用面向對象的方式 """
from tkinter import *
class Application(Frame):
    def __init__(self, master=None):
        super().__init__(master)  # super() 代表的是父類的定義,而不是父類的對象
        self.master = master
        self.pack()
        self.createWidget()
    def createWidget(self):
        """創建組件"""
        self.label01 = Label(self,text='程序員',width=10,height=2,bg='black',fg='white')
        self.label01.pack()
        self.label02 = Label(self, text='程序員2', width=10, height=2, bg='blue',
                             fg='white',font=("黑體",30),justify='center')
        self.label02.pack()
        # 顯示圖像
        global photo  # 將phone聲明成全局變量,如果是局部變量,本方法執行完圖像就會銷毀,窗口顯出不出來
        photo = PhotoImage(file="py.png")  # 圖片支持gif對象
        self.label03 = Label(self,image =photo,width=300,height=200)
        self.label03.pack()
        self.label04 = Label(self, text="圖片\n我有一個圖片\n一個好看的圖片", borderwidth=1,relief="solid",justify='right')
        self.label04.pack()
if __name__ == '__main__':
    root = Tk()
    root.geometry("600x400+300+300")
    root.title("Label的測試")
    app = Application(master=root)
    root.mainloop()

原文鏈接:https://blog.csdn.net/qq_52007481/article/details/126794061

欄目分類
最近更新