国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python GUI編程詳解

Python GUI編程詳解

2022-01-20 00:08Harris-H Python

這篇文章主要介紹了Python GUI編程,結合完整示例形式分析了Python基于tkinter模塊的GUI圖形界面編程相關實現技巧,需要的朋友可以參考下

Python GUI編程

0.創建窗口

import tkinter as tk
#創建一個窗口
root = tk.Tk()
root.mainloop()
# 第2步,給窗口的可視化起名字
root.title('My Window')
# 設置窗口最小和最大
root.minsize(300,300)
root.maxsize(500,500)

Python GUI編程詳解

1.Label和Button的使用

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪衛
import tkinter as tk  # 使用Tkinter前需要先導入
# 第1步,實例化object,建立窗口window
window = tk.Tk()
# 第2步,給窗口的可視化起名字
window.title('My Window')
# 第3步,設定窗口的大小(長 * 寬)
window.geometry('500x300')  # 這里的乘是小x
# 第4步,在圖形界面上設定標簽
var = tk.StringVar()  # 將label標簽的內容設置為字符類型,用var來接收hit_me函數的傳出內容用以顯示在標簽上
l = tk.Label(window, textvariable=var, bg='green', fg='white', font=('Arial', 12), width=30, height=2)
# 說明: bg為背景,fg為字體顏色,font為字體,width為長,height為高,這里的長和高是字符的長和高,比如height=2,就是標簽有2個字符這么高
l.pack()
# 定義一個函數功能(內容自己自由編寫),供點擊Button按鍵時調用,調用命令參數command=函數名
on_hit = False

def hit_me():
  global on_hit
  if on_hit == False:
      on_hit = True
      var.set('you hit me')
  else:
      on_hit = False
      var.set('')

# 第5步,在窗口界面設置放置Button按鍵
b = tk.Button(window, text='hit me', font=('Arial', 12), width=10, height=1, command=hit_me)
b.pack()
# 第6步,主窗口循環顯示
window.mainloop()

2.Entry和Text的使用

Entry是tkinter類中提供的的一個單行文本輸入域,用來輸入顯示一行文本,收集鍵盤輸入(類似 HTML 中的 text)。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪衛
import tkinter as tk  # 使用Tkinter前需要先導入
# 第1步,實例化object,建立窗口window
window = tk.Tk()
# 第2步,給窗口的可視化起名字
window.title('My Window')
# 第3步,設定窗口的大小(長 * 寬)
window.geometry('500x300')  # 這里的乘是小x
# 第4步,在圖形界面上設定輸入框控件entry并放置控件
e1 = tk.Entry(window, show='*', font=('Arial', 14))  # 顯示成密文形式
e2 = tk.Entry(window, show=None, font=('Arial', 14))  # 顯示成明文形式
e1.pack()
e2.pack()
# 第5步,主窗口循環顯示
window.mainloop()

Text是tkinter類中提供的的一個多行文本區域,顯示多行文本,可用來收集(或顯示)用戶輸入的文字(類似 HTML 中的 textarea),格式化文本顯示,允許你用不同的樣式和屬性來顯示和編輯文本,同時支持內嵌圖象和窗口。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪衛
import tkinter as tk  # 使用Tkinter前需要先導入
# 第1步,實例化object,建立窗口window
window = tk.Tk()
# 第2步,給窗口的可視化起名字
window.title('My Window')
# 第3步,設定窗口的大小(長 * 寬)
window.geometry('500x300')  # 這里的乘是小x
# 第4步,在圖形界面上設定輸入框控件entry框并放置
e = tk.Entry(window, show=None)  # 顯示成明文形式
e.pack()

# 第5步,定義兩個觸發事件時的函數insert_point和insert_end(注意:因為Python的執行順序是從上往下,所以函數一定要放在按鈕的上面)
def insert_point():  # 在鼠標焦點處插入輸入內容
  var = e.get()
  t.insert('insert', var)

def insert_end():  # 在文本框內容最后接著插入輸入內容
  var = e.get()
  t.insert('end', var)

# 第6步,創建并放置兩個按鈕分別觸發兩種情況
b1 = tk.Button(window, text='insert point', width=10,
             height=2, command=insert_point)
b1.pack()
b2 = tk.Button(window, text='insert end', width=10,
             height=2, command=insert_end)
b2.pack()
# 第7步,創建并放置一個多行文本框text用以顯示,指定height=3為文本框是三個字符高度
t = tk.Text(window, height=3)
t.pack()
# 第8步,主窗口循環顯示
window.mainloop()

Entry.get() 獲取輸入的文本內容。

Text.insert(‘insert',content) 鼠標焦點處插入內容

Text.insert(‘end',content) 末尾插入內容。

3.Grid網格布局

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪衛
import tkinter as tk  # 使用Tkinter前需要先導入
# 第1步,實例化object,建立窗口window
window = tk.Tk()
# 第2步,給窗口的可視化起名字
window.title('My Window')
# 第3步,設定窗口的大小(長 * 寬)
window.geometry('500x300')  # 這里的乘是小x
# 第4步,grid 放置方法
for i in range(3):
  for j in range(3):
      tk.Label(window, text='('+str(i)+','+str(j)+')').grid(row=i, column=j, padx=10, pady=10, ipadx=10, ipady=10)
# 第5步,主窗口循環顯示
window.mainloop()

4.Frame框架

Frame:框架,用來承載放置其他GUI元素,就是一個容器,是一個在 Windows 上分離小區域的部件, 它能將 Windows 分成不同的區,然后存放不同的其他部件. 同時一個 Frame 上也能再分成兩個 Frame, Frame 可以認為是一種容器.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:洪衛
import tkinter as tk  # 使用Tkinter前需要先導入
# 第1步,實例化object,建立窗口window
window = tk.Tk()
# 第2步,給窗口的可視化起名字
window.title('My Window')
# 第3步,設定窗口的大小(長 * 寬)
window.geometry('500x300')  # 這里的乘是小x
# 第4步,在圖形界面上創建一個標簽用以顯示內容并放置
tk.Label(window, text='on the window', bg='red', font=('Arial', 16)).pack()  # 和前面部件分開創建和放置不同,其實可以創建和放置一步完成
# 第5步,創建一個主frame,長在主window窗口上
frame = tk.Frame(window)
frame.pack()
# 第6步,創建第二層框架frame,長在主框架frame上面
frame_l = tk.Frame(frame)  # 第二層frame,左frame,長在主frame上
frame_r = tk.Frame(frame)  # 第二層frame,右frame,長在主frame上
frame_l.pack(side='left')
frame_r.pack(side='right')
# 第7步,創建三組標簽,為第二層frame上面的內容,分為左區域和右區域,用不同顏色標識
tk.Label(frame_l, text='on the frame_l1', bg='green').pack()
tk.Label(frame_l, text='on the frame_l2', bg='green').pack()
tk.Label(frame_l, text='on the frame_l3', bg='green').pack()
tk.Label(frame_r, text='on the frame_r1', bg='yellow').pack()
tk.Label(frame_r, text='on the frame_r2', bg='yellow').pack()
tk.Label(frame_r, text='on the frame_r3', bg='yellow').pack()
# 第8步,主窗口循環顯示
window.mainloop()

Python GUI編程詳解

關于邊距

padx,pady 外邊距水平方向和垂直方向。

ipadx,ipady 內邊距。

padx=10,表示左右邊距為10像素。

padx=(10,20) 表示左邊距10,右邊距20.

https://www.cnblogs.com/rainbow-tan/p/14694211.html

5.messagebox消息框

import tkinter as tk
from tkinter import messagebox
if __name__ == '__main__':
  def LoginButton():
      u = rt.username.get()
      p = rt.password.get()
      if len(u) == 0 or len(p) == 0:
          messagebox.showerror('提示:', '輸入信息為空')
      else:
          messagebox.showinfo('提示:', '用戶名: %s\n密碼為: %s\n' % (u, p))

  # 主窗口
  rt = tk.Tk()
  rt.geometry('300x300')
  # 變量
  rt.username = tk.StringVar()
  rt.password = tk.StringVar()
  # 賬號
  f1 = tk.Frame(rt)
  tk.Label(f1, text='賬號:  ').grid(row=0, column=0, padx=30)
  tk.Entry(f1, textvariable=rt.username).grid(row=0, column=1)
  f1.grid(pady=50)
  # 密碼
  f2 = tk.Frame(rt)
  tk.Label(f2, text='密碼:  ').grid(row=1, column=0, padx=30)
  tk.Entry(f2, show='*', textvariable=rt.password).grid(row=1, column=1)
  f2.grid()
  # 登錄按鈕
  tk.Button(rt, text='登錄', command=LoginButton).grid(pady=30)
  rt.mainloop()

Python GUI編程詳解

6.下拉框

  def GetIdentity(*args):
      identity = rt.identity.get()
      print(identity)
# 身份下拉框
  f0 = tk.Frame(rt)
  tk.Label(f0, text='身份:  ').grid(row=0, column=0, padx=(5,30))
  identityBox = ttk.Combobox(f0, textvariable=rt.identity, values=['管理員', '用戶', '其他'],width=10)
  identityBox.grid(row=0, column=1)
  identityBox.current(1)
  identityBox.bind("<<ComboboxSelected>>", GetIdentity)
  f0.grid(padx=0,pady=20)

Python GUI編程詳解

7.Menu菜單

創建一個頂級菜單,你需要先創建一個菜單實例,然后使用 add() 方法將命令和其它子菜單添加進去:

import tkinter as tk
root = tk.Tk()
def callback():
      print("~被調用啦~")
#創建一個頂級菜單
menubar = tk.Menu(root)
menubar.add_command(label = "Hello", command = callback)
menubar.add_command(label = "Quit", command = root.quit)
#顯示菜單
root.config(menu = menubar)
root.mainloop()

2.創建一個下拉菜單(或者其他子菜單),方法也是大同小異,最主要的區別是它們最后需要添加到主菜單上(而不是窗口上):

import tkinter as tk
root = tk.Tk()
def callback():
  print("~被調用了~")
# 創建一個頂級菜單
menubar = tk.Menu(root)
# 創建一個下拉菜單“文件”,然后將它添加到頂級菜單中
filemenu = tk.Menu(menubar, tearoff=False)
filemenu.add_command(label="打開", command=callback)
filemenu.add_command(label="保存", command=callback)
filemenu.add_separator()
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)
# 創建另一個下拉菜單“編輯”,然后將它添加到頂級菜單中
editmenu = tk.Menu(menubar, tearoff=False)
editmenu.add_command(label="剪切", command=callback)
editmenu.add_command(label="拷貝", command=callback)
editmenu.add_command(label="粘貼", command=callback)
menubar.add_cascade(label="編輯", menu=editmenu)
# 顯示菜單
root.config(menu=menubar)
root.mainloop()

https://blog.csdn.net/qq_41556318/article/details/85273584


 

項目學習、

1.點名器

Python GUI編程詳解

Python GUI編程詳解

a.導航欄

頂級菜單分為兩個子菜單:菜單和導入人名列表。

子菜單三個功能:刪除庫,退出,顯示作者。

b.主體

用一個Label 表示提示信息(請導入人名列表,請選擇人數)

然后三個Label分別顯示選擇幾個人,三個Button按鈕。

清零按鈕用來清屏三個Label。

c.邏輯

運行程序,先檢查是否當前工作目錄下是否有文件庫.txt(人名數據表)

沒有提示導入,然后點擊導入,會在工作目錄下生成一個庫.txt。

點對應的生成按鈕,利用random函數從人名表中生成。

 

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

原文鏈接:https://blog.csdn.net/weixin_45750972/article/details/120596373

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产中文视频 | 国产精品免费观看 | 国产99久久精品一区二区永久免费 | 婷婷久久久 | 亚洲国产精品自拍 | 亚洲成人免费影院 | 三区视频 | 亚洲影视一区 | 骚虎av| 在线免费观看av的网站 | 国产中文字幕一区 | 快色视频在线观看 | 最新中文字幕在线 | 天天摸天天摸 | 国产成人精品综合 | 亚洲欧美在线精品 | 亚洲高清毛片一区二区 | 欧美激情亚洲 | 精品国产一区二区三区忘忧草 | 免费一级毛片在线播放放视频 | 国产精品免费av | 中文字幕三区 | 久久久久综合精品福利啪啪 | 亚洲男人的天堂网站 | 欧美视频日韩视频 | 日韩精品一区二区三区在线观看 | 91粉色视频| 欧美专区在线 | 6080yy午夜一二三区久久 | 中文字幕日韩欧美一区二区三区 | 91国视频 | 亚洲精品一区二区三区蜜桃下载 | 午夜视频在线播放 | 玖玖精品在线 | 免费看黄色一级视频 | 亚洲视频中文字幕 | 午夜视频在线播放 | 精品久久久久久亚洲综合网 | 国产精品影视在线观看 | 日韩欧美三区 | 日韩高清中文字幕 |