精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python圖形用戶界GUI大解密(上篇)

開發 后端
這篇文章著重介紹了Python中自帶的GUI模塊-----tkinter,由于內容較多,上篇內容主要介紹了其安裝、基本部件、下拉菜單、畫布等內容。

[[402883]]

在我們平時寫代碼的時候,為了讓程序效果顯得更直觀,我們通常都會給它們套上一層美麗的外衣,這層外衣便是-------GUI,中文名又叫,圖形用戶接口,能起到很好的交互作用。下面我們來著重介紹下Python中自帶的GUI模塊-----tkinter,看看它有哪些豐富的圖形接口吧。

1.安裝并導入

哦,tkinter庫系統自帶,無需安裝,直接導入即可:

  1. import tkinter  as tk  # 因為它比較長,所以給它個簡寫的方式 ,用tk代表它。 

2.實例化窗口

  1. root= tk.Tk()            #主窗口 
  2. root.title('hello')   #窗口標題 
  3. root.geometry('400x500')  #窗口尺寸 
  4. root.wm_minsize(140, 170) # 設置窗口最小化大小 
  5. root.wm_maxsize(1440, 2800)             # 設置窗口最大化大小 
  6. root.iconbitmap('1.ico')   #窗口圖標 必須是ico格式的圖片 
  7. root.resizable(width=False, height=True)     # 設置窗口寬度不可變,高度可變 
  8. root.mainloop() #主窗口循環顯示 

 

我們的第一個窗口就這樣應運而生了,另外它還有許多其它功能,比如:

  1. root.quit()    #退出 
  2. root.destroy() #銷毀 
  3. root.update() #刷新 可以接收用戶改變程序進程 
  4. root.update_idletasks()  #刷新 不能接收用戶改變程序進程 
  5. root.wm_title('i love you')  #最小化顯示字樣 
  6. root.configure(background='blue') #背景顏色 

下面我們再給它添加點別的部件和功能吧。

3.基本部件

tkinter里面有很多豐富的部件,有標簽,文本框,列表框,下拉列表框,多選框,單選框等等,下面我們一起認識下它們吧。

一、標簽

它是tkinter里面的標簽部件,主要用于提示。那么它有哪些有趣的功能呢?一起看一下:

  1. label=tk.Label(root,   
  2.          text='Hello', #標簽內文本 
  3.          bg='red',      #背景顏色 
  4.          font=('Arial',20), #字體和字體大小 
  5.          width=10,  #文本寬度 
  6.          height=5   #文本高度 
  7.         ) 

不過我們光這樣標簽還不會添加到我們的主界面中,還得給它進行下一步操作:

  1. label.pack() #添加部件到主界面 

下面看下效果:

這樣我們就成功將它添加進來了,有點丑,等會我們再做修改。大家可以看到現在的標簽里的值是靜態無法修改的,那要是我們想讓它動態變更了,那我們可以這樣做:

這樣就達到了修改標簽的值的功能。

關于標簽還有許多優秀的方法,比如說:

  1. label.configure(text) #重新設置標簽文本 得是text的時候設置才生效 
  2. label.configure(background='blue')  #重新設置標簽背景 

標簽的屬性總共有下面幾種:

  1. anchor              文本位置; 
  2. background(bg)     背景色; 
  3.     foreground(fg)      前景色; 
  4.     borderwidth(bd)     邊框寬度; 
  5.     width             標簽寬度; 
  6.     height            標簽高度; 
  7.     bitmap             標簽中的位圖; 
  8.     font               字體; 
  9.     image             標簽中的圖片; 
  10.     justify            多行文本的對齊方式; 
  11.     text             標簽中的文本,可以使用'\n'表示換行 
  12.     textvariable       顯示文本自動更新,與StringVar等配合著用 

二、按鈕

按鈕的功能主要是實現點擊功能,比如說確認,提交操作。那么它有哪些操作呢?

可以看出,成功實現了點擊事件,而且我們可以通過點擊按鈕來改變標簽的值,下面來看看:

可以看出,成功的改變了值和背景顏色。大家可能對上圖中的side='left'有點不理解,其實那個就是確定組件位置的,一個左一個右。按鈕還有一個隱藏和顯示的功能也是相當好實現的:

  1. button.pack          #顯示 
  2. button.pack_forget   #隱藏 

關于button還有以下方法供大家學習:

  1. anchor           文本位置; 
  2. background(bg)     按鈕的背景色; 
  3.   bitmap:            按鈕上顯示的位圖; 
  4.   borderwidth(bd)    按鈕邊框的寬度; 
  5.   command:         按鈕消息的回調函數; 
  6.   cursor:           鼠標移動到按鈕上的指針樣式; 
  7.   font:              按鈕上文本的字體; 
  8.   foreground(fg)     按鈕的前景色; 
  9.   height:           按鈕的高度; 
  10.   image:            按鈕上顯示的圖片; 
  11.   state:             按鈕的狀態(disabled); 
  12.   text:               按鈕上顯示的文本; 
  13.   width:            按鈕的寬度 
  14.   padx              設置文本與按鈕邊框x的距離,還有pady; 
  15.   activeforeground    按下時前景色 
  16.   textvariable        可變文本,與StringVar等配合著用 

三、文本框,多行文本框

之所以拿來一起講,是因為它們很多參數都是一樣的,所以沒必要分開講,我們先來說說文本框:

1.文本框

用來接受用戶輸入,常用來登陸賬號和密碼。

可以看到一個顯示為漢字,另一個則是?,這就是它的明文和密文設置了。我們還可以獲取到它里面的值用來校驗數據庫中的信息以便登陸,不過這里我們只把它打印出來即可。

完美將它打印了出來,小伙伴們看到這里是不是可以寫個登陸系統嘞。單行文本框自定義插入值:

  1. e1.insert(index,string) #在指定索引位置插入字符串 

2.多行文本框

與文本框不同的是,它可以顯示多行信息,一般用來顯示某些結果。

可以看到,多行文本就是這樣的,我們可以給它插入文本:

  1. tt.insert('insert','你是豬嗎')  #首行插入 
  2. tt.insert('current','我是豬')   #當前插入 
  3. tt.insert('end','123')         #末尾插入 

 

除了插入還可以刪除:

  1. tt.delete('1.0',tk.END) #刪除文本框所有內容 

另外文本框有時候需要實時更新內容,所以還有一個方法:

  1. tt.update()  #更新多行文本框內容 

 

除此之外,我們還可以在多行文本框中添加其它組件實現一些功能。

1.記住密碼功能

2.照片查看器

我們需要認識一個新的方法,它叫PhotoImage。它的設計比較古怪,個人覺得,因為它只支持gif圖片。

通過上面的設置創建了一個window執行函數,在實際應用中可以用它來實現記住密碼和查看gif照片的功能。

關于文本框和多行文本框就說到這里,它們還有很多其它的方法:

指定位置插入值:

  1. tt.mark_set("here","3.2") #建立mark,相當于索引,第三行第二列 
  2. tt.insert('here',"hello") #插入hello 
  3. tt.mark_unset('here') #刪除mark 

高亮顯示文本:

  1. tt.tag_add('tag1','1.3','2.1','2.2') #設置要設置樣式的區域 
  2. tt.tag_config("tag1",background="green",foreground="blue"
  3. tt.tag_config("tag2",background="blue",foreground="red")#如設置多個樣式則新樣式覆蓋舊樣式 
  4. tt.tag_lower("tag1")  #可通過tagraise()和tag_lower()方法來提高和降低某個Tag的優先級 

獲取多行文本框的值:

  1. tt.get('0.0','end'

文本綁定鼠標事件:

  1. tt.tag_add("link","2.1","2.5"
  2. tt.tag_config("link",foreground="blue",underline=True) #選中的內容添加下劃線 藍色背景顏色 
  3. def show_1(event): 
  4.      tt.config(cursor="arrow") #鼠標箭頭型 
  5. def show_2(event): 
  6.      tt.config(cursor="xterm")  #鼠標I型 
  7. def click(event): 
  8.      print('我被單擊了'
  9. tt.tag_bind("link","<Enter>",show_1) 
  10. tt.tag_bind("link","<Leave>",show_2) 
  11. tt.tag_bind("link","<Button-1>",click) 

 

恢復,撤銷:

  1. tt.edit_undo() #撤銷 
  2. tt.editredo()  #恢復 

更多精彩內容:

  1. background(bg)      文本框背景色; 
  2. foreground(fg)        前景色; 
  3. selectbackground    選定文本背景色; 
  4. selectforeground    選定文本前景色; 
  5. borderwidth(bd)      文本框邊框寬度; 
  6. font                 字體; 
  7. show                文本框顯示的字符,若為*,表示文本框為密碼框; 
  8. state               狀態; 
  9. width              文本框寬度 
  10. textvariable        可變文本,與StringVar等配合著用 

四、單選框,復選框

這個我們平時勾選答案是單選還是多選時很常見。下面讓我們來看看吧:

1.單選框Radiobutton

2.復選框Checkbutton

可以看出,做出來了,不過有點復雜,因為沒有善用循環,下面給出一種簡單的寫法:

可以看到,幾行代碼就把四個控件列出來了。關于單選框多選框還有很多有趣的方法:

  1. anchor           文本位置; 
  2. background(bg)   背景色; 
  3. foreground(fg)    前景色; 
  4. borderwidth       邊框寬度; 
  5. width            組件的寬度; 
  6. height           組件高度; 
  7. bitmap           組件中的位圖; 
  8. image            組件中的圖片; 
  9. font             字體; 
  10. justify          組件中多行文本的對齊方式; 
  11. text             指定組件的文本; 
  12. value            指定組件被選中中關聯變量的值; 
  13. variable          指定組件所關聯的變量; 
  14. indicatoron        特殊控制參數,當為0時,組件會被繪制成按鈕形式; 
  15. textvariable       可變文本顯示,與StringVar等配合著用 

五、listbox列表

列表常用于選擇選項。

這個比較簡單,沒什么好說的。

六、滑塊條,滾動條

1.滑塊條

一行代碼就能搞定了,也是非常簡單:

默認方向為垂直,只需將orient屬性設為horizontal(tk.HORIZONTAL )即可,也可設為垂直:orient="vertical"

2.滾動條

常和其它組件配套使用,比如列表框,多行文本框。安裝滾動條之前需要做兩件事情。

1.指定該組件的yscrollbarcommand參數為Scrollbar的set()方法

2.指定Scrollbar 的 command 參數為該組件的 yview() 方法

由于滾動條一般都是垂直方向,所以我們不改動它的方向。

可以看到,我們的滾動條和列表組件產生了聯系,滾動條滾動列表內容相應往下翻,如果你要想設置滾動條的位置,只需:

  1. sl.set(0.5,1) #使滾動條始終保持在中間位置 

滾動條和滑塊條一樣,都比較簡單,項目中用的也不是蠻多,總體來說比較簡單的組件。

七、畫布

平時會用于繪制各種曲線和位圖,canvas可以很輕松創建各種有趣的圖形圖像。下面來了解下

  1. #初始化一個200x100的背景顏色為藍色的形狀 
  2. canvas = tk.Canvas(root, bg='blue', height=100, width=200)  
  3.  
  4. #創建一個矩形,背景色為綠色,邊框線顏色為紅色,線寬為2,虛線長度為3,畫刷為gray12, 
  5. jx=canvas.create_rectangle(100,100,50,50,fill='green',outline='red',width=2,dash=3,stipple = 'gray12'
  6.  
  7. #繪制弧形 風格為pieslice(chord扇形,拋物線arc) 起始角度0 角度偏移量180 
  8. hx=canvas.create_arc(50, 100,140, 200,style='pieslice',start=0, extent=180) 
  9.  
  10. #創建直線 坐標為100,100的長度為200x200的直線,一頭有箭頭(none無,last尾部,both兩端,箭頭形狀) 
  11. zx=canvas.create_line(100, 100, 200, 200,arrow='first',arrowshape='30 20 10')  
  12.  
  13. #創建橢圓,背景色為red 
  14. y=canvas.create_oval(50, 100,140, 200, fill='red'
  15.  
  16. #創建多邊形 直角三角形 
  17. dbx=canvas.create_polygon((150,150,150,200,70,200),fill = 'red'
  18.  
  19. #創建文字  居中顯示 
  20. wz=canvas.create_text((10,10),text = 'Hello Text',anchor ='w'
  21. canvas.select_from(wz,3)  # 設置文本的選中開始位置 
  22. canvas.select_to(wz,7)# 設置文本的選中結束位置 
  23.  
  24. #創建位圖,類型為error(info信息,question問題,hourglass沙漏) 
  25. canvas.create_bitmap((40,40),bitmap = 'error'
  26.  
  27. #創建gif 
  28. img= tk.PhotoImage(file='1.gif'
  29. canvas.create_image(10, 10, anchor='nw', image=img) 
  30.  
  31. #創建組件 
  32. bt =tk.Button(canvas,text='hello',command) 
  33. canvas.create_window((100,100),window=bt,anchor='w'
  34.  
  35. #將jx移動到另一區域 
  36. cv.coords(jx,(10,10,20,20)) 
  37.  
  38. #移動圖形右移20個px,再返回 
  39. canvas.move(jx,20,0) 
  40.  
  41. #刪除圖形 
  42. canvas.delete(jx) 
  43.  
  44. #添加綁定事件,只有點擊到矩形邊框才有效 
  45. canvas.tag_bind('jx','<Button-1>',command) #左鍵為1,右鍵為3,滾輪2 

canvas繪圖還是比較強大的,以上的知識點差不多夠平時用了,可以看到:

八、下拉列表框

一般用于某個功能的配套選擇,這個部件在tkinter中的ttk模塊下,和其它的不同,所以我們導入ttk:

  1. #打印下拉列表框的值 
  2. from tkinter import  ttk 
  3. def function(*arg): 
  4.     print(cb.get()) #獲取下拉列表框的值 
  5. cb=ttk.Combobox(root, width=12,state='readonly')#下拉列表框寬度為12 只讀 
  6. cb['values'] = ('請選擇-----','1','2','3','4') #設置下拉列表框的內容    
  7. cb.current(0)    #將當前選擇狀態置為0,也就是第一項 
  8. cb.bind("<<ComboboxSelected>>",function)  #綁定function函數,然后觸發事件 
  9. cb.pack() 

注:下拉列表沒有command參數,但是它可以設置textvariable進行參數傳遞。

九、菜單欄,菜單按鈕,選項菜單

先說說我們熟知的菜單(Menu),它主要我們為了簡化軟件的使用而建立的,避免添加過多的控件。那么它是如何建立的了,請看:

1.下拉菜單

  1. #創建菜單欄 
  2. m=tk.Menu(root) 
  3.  
  4. #定義一個父菜單 
  5. file=tk.Menu(m,tearoff=False
  6.  
  7. #將上面定義的父菜單命名為File,放在菜單欄中 
  8. m.add_cascade(label='文件', menu=file) 
  9.  
  10. #在File中加入下拉菜單,并添加對應命令操作。 
  11. #如果點擊這些選項, 就會觸發相應的功能 
  12. file.add_command(label='新建',accelerator='Ctrl+N'
  13. file.add_command(label='打開', accelerator='Ctrl+O'
  14. file.add_command(label='保存', accelerator='Ctrl+S'
  15.  
  16. #添加一條分割線 
  17. file.add_separator() 
  18. file.add_command(label='退出',command=root.quit,accelerator='Ctrl+Q'
  19.   
  20.   
  21. edit= tk.Menu(m,tearoff=False
  22. m.add_cascade(label='編輯', menu=edit) 
  23. edit.add_command(label='剪切',accelerator='Ctrl+X'
  24. edit.add_command(label='復制',accelerator='Ctrl+C'
  25. edit.add_command(label='粘貼',accelerator='Ctrl+V'
  26.   
  27. #二級菜單 
  28. s= tk.Menu(file,tearoff=False
  29. file.add_cascade(label='導入', menu=s) 
  30. s.add_command(label="模塊"
  31. s.add_command(label="文本文件"
  32.  
  33. #三級菜單 
  34. z=tk.Menu(s,tearoff=False
  35. s.add_cascade(label='圖片',menu=z) 
  36. z.add_command(label="gif"
  37. z.add_command(label="jpg"
  38. z.add_command(label="png"
  39. z.add_command(label="bmp"
  40. root.configure(menu=m) 

 

2.右鍵彈出菜單

在做這個之前我們要了解鼠標綁定事件愛你,因為右鍵彈出需要擊鍵,所以我們需要了解它。

既然是右鍵我們當然得綁定右鍵了:

  1. root.bind("<Button-3>",function

然后我們書寫綁定函數并把它綁定到當前對象中:

  1. def function(event): 
  2.     m.post(event.x_root, event.y_root)  #可以替換菜單,變為其它菜單,比如說s,z 

這樣就實現了右鍵彈出菜單的功能,是不是很簡單了。關于菜單的操作還有許多,不一一演示,下面請看:

  1. #添加一個子菜單 coption為配置選項 
  2. add_cascade(option
  3.  
  4. #添加一個切換按鈕 coption為配置選項 
  5. add_checkbutton(option
  6.  
  7. #添加一個功能按鈕 coption為配置選項 
  8. add_command(option
  9.  
  10. #添加一個單選按鈕 coption為配置選項 
  11. add_radiobutton(option
  12.  
  13. #添加一個分割線 
  14. add_separator() 
  15.  
  16. #刪除index1 到 index2之間的選項 
  17. delete(index1,index2) 
  18.  
  19. #獲取菜單某一項的屬性值 
  20. entrycget(index,coption) 
  21.  
  22. #重新配置菜單中某項的屬性 
  23. entryconfigure(index,option
  24.  
  25. #返回參數位置對應的選項索引 
  26. index(i) 
  27.  
  28. #在指定位置插入一個子菜單 
  29. insert_cascade(index,option
  30.  
  31. #在指定位置插入一個切換按鈕 
  32. insert_checkbutton(index,option
  33.  
  34. #在指定位置插入一個功能按鈕 
  35. insert_command(index,option
  36.  
  37. #在指定位置插入一個單選按鈕 
  38. insert_radiobutton(index,option
  39.  
  40. #在指定位置插入一個分割線 
  41. insert_separator(index
  42.  
  43. #代碼手動調用一次某個選項 
  44. invoke(index
  45.  
  46. #在窗口指定位置彈出菜單 
  47. post(x,y) 
  48.  
  49. #獲取某個選項的類型 
  50. type(index
  51.  
  52. #獲取某個選項距離菜單頂部的偏移量 
  53. yposition(n) 
  54.  
  55. #添加一個選項 可以是功能按鈕,切換按鈕,單選按鈕或子菜單,由類型確認 
  56. #類型可選 cascade checkbutton command radiobutton separator 
  57. add(kind,option

3.菜單按鈕

它是與菜單相關聯的按鈕,可放在任意位置,下面來創建一個看看:

  1. def show(): #觸發事件 
  2.     print("hello"
  3. mb = tk.Menubutton(root,text="python",relief=tk.RAISED) #菜單按鈕配置 
  4. mb.pack() 
  5. file = tk.Menu(mb,tearoff=0)  #添加菜單 
  6. file.add_checkbutton(label="打開",command=show) #添加確認按鈕到菜單中 
  7. file.add_command(label="保存",command=show) #添加保存命令 
  8. file.add_separator() #添加分隔線 
  9. file.add_command(label="退出",command=root.quit) #添加退出命令 
  10. mb.configure(menu=file)  #將菜單按鈕配置添加到主菜單中 

 

4.選項菜單

這個組件在一定程度上好比下拉菜單,又如listbox,下面我們來看下吧:

  1. var =tk.StringVar() 
  2. var.set("編程語言") #設置菜單初始值 
  3. o = tk.OptionMenu(root,var,"python","php","c#","c++") #將菜單選項加入到菜單中去 
  4. o.pack() 

 

是不是覺得菜單比較有趣,通過對菜單的認識你也可以做一個記事本或者其它小工具,其它方法如下:

  1. tearoff         分窗,0為在原窗,1為點擊分為兩個窗口,也可以是 TrueFalse 
  2. bg,fg           背景,前景 
  3. borderwidth      邊框寬度 
  4. font              字體 
  5. activebackgound  點擊時背景,有activeforeground,activeborderwidth,disabledforeground 
  6. cursor            選中菜單選項時的光標形狀 
  7. post               右鍵菜單 
  8. selectcolor      選中時背景 
  9. takefocus         使用 Tab 鍵獲取按鈕的焦點  
  10. title              標題 
  11. type                類型 
  12. relief              樣式"sunken""raised""groove""ridge" "flat" 
  13.  
  14. 方法: 
  15. m.add_cascade      添加子選項 
  16. m.add_command      添加命令(label參數為顯示內容) 
  17. m.add_separator    添加分隔線 
  18. m.add_checkbutton  添加確認按鈕 
  19. delete                刪除 

總結

這篇文章著重介紹了Python中自帶的GUI模塊-----tkinter,由于內容較多,上篇內容主要介紹了其安裝、基本部件、下拉菜單、畫布等內容,下篇文章我們繼續解密Python GUI的其他內容。

 

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2021-06-04 09:01:05

PythonGUI大解密Python基礎

2012-02-01 08:56:32

2016-07-12 10:09:13

OpenManage大

2016-06-20 15:36:01

OpenManage大

2017-12-14 09:35:10

58速運訂單調度

2025-02-08 14:03:25

2023-11-29 07:30:08

Python用戶界面

2025-02-24 10:17:48

2022-01-26 00:02:00

PythonGUI界面

2024-10-28 16:03:24

2024-09-24 10:00:55

2014-02-10 10:13:41

VirtualBox虛擬機

2021-06-27 17:12:27

PythonGUI圖形界面

2017-11-22 12:40:02

PythonGUI框架

2024-06-26 12:17:48

深度學習GUI

2010-09-07 12:06:46

PPPoE協議

2009-03-10 08:43:38

Erwise圖形瀏覽器

2021-01-04 09:19:06

WindowsLinuxGUI程序

2010-06-17 16:06:18

串口協議

2011-01-18 17:47:35

點贊
收藏

51CTO技術棧公眾號

三级精品视频久久久久| 亚洲国产精品久久不卡毛片| 国产精品爽爽爽爽爽爽在线观看| 婷婷伊人五月天| 一区二区三区自拍视频| 岛国av午夜精品| 亚洲精品无人区| 亚洲AV无码一区二区三区少妇| 国产精品日韩精品欧美精品| 日韩在线激情视频| 奇米777第四色| 日本美女久久| 亚洲国产精品一区二区久久 | 蜜臀av午夜一区二区三区| av片在线免费观看| 成人av在线资源网| 国产欧美精品一区二区| 成年人免费看毛片| 性xxxx欧美老肥妇牲乱| 亚洲色图25p| 国产乱国产乱老熟300部视频| 2019年精品视频自拍| 午夜电影网一区| 四虎精品欧美一区二区免费| yw视频在线观看| 97精品久久久午夜一区二区三区 | av污在线观看| 惠美惠精品网| 亚洲成a人v欧美综合天堂| 一区二区视频在线播放| 欧美女v视频| 成人精品视频.| 亚洲字幕一区二区| 中文字幕一级片| 爽爽淫人综合网网站| 97成人超碰免| 久久精品女人毛片国产| 亚洲色图88| 日韩中文av在线| 人人妻人人澡人人爽| 台湾佬综合网| 日韩国产在线播放| 亚洲天堂av网站| 亚洲综合色婷婷在线观看| 欧美日本不卡视频| 69久久久久久| 另类一区二区三区| 欧美色男人天堂| 一本久道中文无码字幕av| 色在线免费观看| 欧美日韩国产专区| 欧美日韩黄色一级片| 黑人玩欧美人三根一起进| 亚洲精品高清在线| 欧美日韩午夜爽爽| 中文字幕在线三区| 亚洲午夜免费视频| 久久久性生活视频| 欧亚在线中文字幕免费| 欧美日韩国产一区二区三区| 日韩激情免费视频| 韩漫成人漫画| 欧美最猛性xxxxx直播| 中文字幕一区二区三区四区在线视频| 97成人超碰| 欧美日韩国产三级| 日本黄色一级网站| 成人知道污网站| 日韩精品www| 在线观看日本中文字幕| 成人羞羞视频播放网站| 日韩在线免费观看视频| 欧美日韩精品在线观看视频 | 国自产精品手机在线观看视频| 日本午夜小视频| 久久激情婷婷| 国产欧美日韩亚洲精品| 成人福利小视频| 99精品国产99久久久久久白柏 | xxxxwww一片| 国产欧美自拍一区| 日韩理论片久久| 成人一级片免费看| 激情偷拍久久| 国产精品91在线| 99视频国产精品免费观看a | 欧美人xxxxx| 一区二区三区视频网站| 一区二区三区国产豹纹内裤在线 | 中文字幕另类日韩欧美亚洲嫩草| 国内视频精品| 国产精品久久久久久久久久小说 | 国产精品迅雷| 7777女厕盗摄久久久| 成人做爰www看视频软件| 亚洲妇女av| 久久精品视频导航| 在线观看免费国产视频| 久久精品国产99久久6 | 丰满少妇在线观看bd| 久久久噜噜噜久久中文字幕色伊伊| 亚洲永久一区二区三区在线| a级大胆欧美人体大胆666| 在线观看欧美日本| 99re这里只有| 亚洲成av人电影| 欧美亚洲视频在线看网址| 一级做a爱片久久毛片| av不卡一区二区三区| 一本一本a久久| 亚洲女同志freevdieo| 欧美一区二区三区系列电影| 亚洲天堂网一区二区| 亚洲精品在线观看91| 日韩免费中文字幕| 亚洲国产一二三区| 国产精品久久久久影院| 国产欧美在线一区| av综合网址| 色久欧美在线视频观看| 青青青国产在线 | 91福利在线看| 91精品又粗又猛又爽| 偷拍欧美精品| 国产精品久久久久久久久久久久久 | 岛国精品一区二区三区| 99久精品视频在线观看视频| 欧美一级成年大片在线观看| 亚洲精品一区二区三区不卡| 国产精品初高中害羞小美女文| 成人在线观看黄| 精品久久对白| 久久全国免费视频| 亚洲国产精彩视频| 亚洲人成小说网站色在线| 三级a在线观看| 亚洲制服一区| 日本一区二区三区在线播放 | 中文字幕日韩欧美| 91视频久久久| 国产亚洲制服色| 国产三级三级三级看三级| 日韩在线麻豆| 欧美在线中文字幕| 三区在线观看| 欧美性极品少妇精品网站| 波多野结衣影院| 亚洲少妇自拍| 蜜桃欧美视频| 丝袜美腿诱惑一区二区三区| 亚洲美女av网站| 成人一二三四区| 国产女人水真多18毛片18精品视频| 精品久久久噜噜噜噜久久图片| 夜夜春成人影院| 国产精品6699| 91精彩视频在线播放| 精品视频在线免费| 久久久久久久麻豆| 国产伦精品一区二区三区免费迷| 成人国产一区二区三区| 一区二区三区亚洲变态调教大结局| 欧美激情二区三区| 亚洲欧美日韩动漫| 高跟丝袜欧美一区| av永久免费观看| 国产一区二区三区免费看| a级片一区二区| 精品福利一区| 国产精品久久999| 成人看片免费| 亚洲国产精品推荐| 亚洲精品国产精品乱码视色| 日韩毛片高清在线播放| 国产成人av片| 欧美专区18| 中文字幕中文字幕在线中心一区| 天堂va在线高清一区| 18性欧美xxxⅹ性满足| 国产免费av在线| 日韩一区二区三区精品视频| 成年人免费高清视频| 亚洲国产精品精华液2区45| 超碰中文字幕在线观看| 99精品久久久| 一区二区高清视频| 亚洲精选av| 国产成人综合久久| 91香蕉在线观看| 精品亚洲一区二区三区在线播放 | 无码人妻丰满熟妇区bbbbxxxx| 中文字幕电影一区| 涩视频在线观看| 日韩av二区在线播放| 日本男女交配视频| 亚洲性视频大全| 亚洲最大的成人网| 韩漫成人漫画| 久久久久久久久久久av| fc2在线中文字幕| 亚洲激情第一页| 国产又粗又猛又爽又黄视频 | 9久久婷婷国产综合精品性色 | 国产精品一区二区三区久久久| 在线播放免费av| 一本大道久久加勒比香蕉 | 国产亚洲美女久久| 亚洲国产精品无码久久| 欧美区一区二区三区| 欧美三日本三级少妇99| 亚洲嫩草精品久久| 久久午夜精品视频| 97精品国产露脸对白| 国产xxxxhd| 免费成人你懂的| 91国视频在线| 欧美日本一区二区视频在线观看 | 日本中文字幕伦在线观看| 日韩国产中文字幕| 噜噜噜久久,亚洲精品国产品| 欧美日韩黄色一区二区| 黄色一级视频免费看| 亚洲综合免费观看高清完整版在线| 国产极品视频在线观看| 久久免费午夜影院| 色婷婷免费视频| 成人小视频在线观看| 久久久久久国产精品日本| 蜜臀a∨国产成人精品| 少妇人妻互换不带套| 一区二区日本视频| 丰满少妇久久久| 韩国一区二区三区在线观看| 久久av秘一区二区三区| 日韩免费久久| 特级西西444www大精品视频| 国产亚洲精品美女久久久久久久久久| 国产在线欧美日韩| 国产成人精品福利| 国产精品区一区| 国产在线播放精品| 国产精品久久久久久久久久久久午夜片 | 91成人精品一区二区| 国产亚洲人成网站| 亚洲综合网在线观看| 99视频一区二区三区| 日本一卡二卡在线| 99久久精品国产毛片| 亚洲精品乱码久久久久久不卡| 99久久综合狠狠综合久久| 欧亚乱熟女一区二区在线| 成人午夜免费电影| 日韩精品一区二区三区高清免费| 国产成人免费视频网站高清观看视频| 日本黄色www| 国产99久久久国产精品潘金| 亚洲精品久久一区二区三区777 | 制服丝袜亚洲色图| 国产精品一区二区三区在线免费观看 | 黄色免费视频大全| 久久九九电影| 九九热在线免费| 久久er99精品| 国产精品中文久久久久久| 国产成人啪午夜精品网站男同| 无码国产69精品久久久久网站 | 无遮挡爽大片在线观看视频 | 精品一区二区三区视频在线播放 | 亚洲精品免费一区亚洲精品免费精品一区| 免费看欧美女人艹b| 色婷婷一区二区三区av免费看| 精品一区精品二区高清| 免费黄色av网址| 久久久亚洲欧洲日产国码αv| 久久午夜精品视频| 亚洲一二三四在线| 五月天婷婷久久| 欧美日韩亚洲丝袜制服| 亚洲国产精品久久人人爱潘金莲| 亚洲精品久久久久久久久久久| 啊v在线视频| 久久久久免费精品国产| 亚洲成人激情社区| 亚洲xxxx视频| 蜜桃精品噜噜噜成人av| 中文字幕在线亚洲精品| aa国产精品| 五月天开心婷婷| 91小视频在线| 国产成人自拍网站| 日韩欧美精品中文字幕| 国产又黄又大又爽| 亚洲精品网站在线播放gif| 欧美一级二级三级区| 国产69精品久久久久99| 青青国产精品| 欧美性天天影院| 欧美1区3d| 97公开免费视频| 高清不卡一二三区| 国产亚洲精品精品精品| 亚洲成av人片在线观看| 91theporn国产在线观看| 亚洲国产成人91精品| 国产激情在线| 国产精品久久77777| 日本韩国欧美超级黄在线观看| 中文字幕在线中文字幕日亚韩一区| 国产欧美日韩综合一区在线播放| 日本国产一级片| 国产欧美一区二区精品仙草咪| 国产在线视频你懂的| 91精品国产欧美一区二区18 | 一级黄色a视频| 日韩精品免费在线观看| 色屁屁www国产馆在线观看| 国产精品流白浆视频| 亚州综合一区| 成人性生活视频免费看| 激情综合色丁香一区二区| 国产人妻大战黑人20p| 图片区小说区国产精品视频| jizz国产视频| xxx欧美精品| yy6080久久伦理一区二区| 日本精品一区二区| 国产欧美不卡| 国产十八熟妇av成人一区| 一区二区三区精品在线观看| 国产老妇伦国产熟女老妇视频| 中文字幕精品—区二区| 午夜精品成人av| 欧美日韩电影一区二区三区| 国产精品最新自拍| 亚洲国产精品无码久久久久高潮 | 日韩一级黄色av| 主播大秀视频在线观看一区二区| 欧美精品亚洲精品| 性欧美精品高清| 亚洲黄色在线网站| 精品久久久视频| 污污网站免费在线观看| 97色伦亚洲国产| 久久综合另类图片小说| 青青青在线视频播放| 成人爱爱电影网址| 亚洲黄色一区二区| 日韩精品免费一线在线观看| 中文字幕在线中文字幕在线中三区| 久久久久资源| 久久电影一区| 久久中文字幕精品| 欧美精品少妇一区二区三区| 国产在线看片| 99久久久精品免费观看国产| 国模 一区 二区 三区| 北京富婆泄欲对白| 欧美日韩中国免费专区在线看| 亚洲人在线观看视频| 国产精品第100页| 五月婷婷亚洲| 国产乱淫av片| 一本色道a无线码一区v| av电影在线播放高清免费观看| 国产精品香蕉av| 综合久久99| 无码成人精品区在线观看| 精品久久久免费| av免费在线一区二区三区| 亚洲v日韩v综合v精品v| 在线看片日韩| 在线免费观看视频| 日韩一区二区三区免费看| 是的av在线| 亚洲国产精品日韩| 成人一区二区三区视频在线观看| 成年人免费高清视频| 日韩一区二区精品视频| youjizz欧美| 国产精品97在线| 亚洲色图在线播放| 婷婷国产在线| 国产在线观看精品| 极品日韩av| 调教驯服丰满美艳麻麻在线视频 | 国产日韩精品在线| 激情久久婷婷| 在线观看亚洲大片短视频| 日韩一区二区三区三四区视频在线观看 | 亚洲二区视频在线| 成人在线免费电影| 国产精品10p综合二区| 秋霞午夜鲁丝一区二区老狼| 国产精品.www| 波霸ol色综合久久| 欧美男男freegayvideosroom| 天堂中文av在线| 色综合天天综合网国产成人综合天 | 在线免费观看一区二区| 97视频免费在线看|