最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Tkinter組件Entry的具體使用

 更新時(shí)間:2022年01月11日 14:16:03   作者:來自江南的你  
本文主要介紹了Tkinter組件Entry的具體使用,Entry組件通常用于獲取用戶的輸入文本,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Entry(輸入框)組件通常用于獲取用戶的輸入文本。

何時(shí)使用 Entry 組件?

Entry 組件僅允許用于輸入一行文本,如果用于輸入的字符串長(zhǎng)度比該組件可顯示空間更長(zhǎng),那內(nèi)容將被滾動(dòng)。這意味著該字符串將不能被全部看到(你可以用鼠標(biāo)或鍵盤的方向鍵調(diào)整文本的可見范圍)。

如果你希望接收多行文本的輸入,可以使用 Text 組件(后面介紹)。

用法

使用代碼為 Entry 組件添加文本,可以使用 insert() 方法。如果要替換當(dāng)前文本,可以先使用 delete() 方法,再使用 insert() 方法實(shí)現(xiàn):

import tkinter as tk
 
master = tk.Tk()
 
e = tk.Entry(master)
e.pack(padx=20, pady=20)
 
e.delete(0, "end")
e.insert(0, "默認(rèn)文本...")
 
master.mainloop()

獲取當(dāng)前輸入框的文本,可以使用 get() 方法:

s = e.get()

你也可以綁定 Entry 組件到 Tkinter 變量(StringVar),并通過該變量設(shè)置和獲取輸入框的文本:

v = tk.StringVar()
e = tk.Entry(master, textvariable=v)
e.pack()
 
v.set("I love Python!")
s = v.get()

下邊的例子演示將 Entry 組件和 Button 組件配合,點(diǎn)擊 “獲取信息” 按鈕時(shí)自動(dòng)清空輸入框并將內(nèi)容輸出:

import tkinter as tk
 
master = tk.Tk()
 
tk.Label(master, text="作品:").grid(row=0)
tk.Label(master, text="作者:").grid(row=1)
 
e1 = tk.Entry(master)
e2 = tk.Entry(master)
e1.grid(row=0, column=1, padx=10, pady=5)
e2.grid(row=1, column=1, padx=10, pady=5)
 
def show():
    print("作品:《%s》" % e1.get())
    print("作者:%s" % e2.get())
    e1.delete(0, "end")
    e2.delete(0, "end")
 
tk.Button(master, text="獲取信息", width=10, command=show).grid(row=3, column=0, sticky="w", padx=10, pady=5)
tk.Button(master, text="退出", width=10, command=master.quit).grid(row=3, column=1, sticky="e", padx=10, pady=5)
 
master.mainloop()

最后需要提到的是 Entry 組件允許通過以下幾種方式指定字符的位置:

數(shù)字索引號(hào)"anchoe""end""insert"鼠標(biāo)坐標(biāo)("@x")

數(shù)字索引號(hào):常規(guī)的 Python 索引號(hào),從 0 開始

"anchor":對(duì)應(yīng)第一個(gè)被選中的字符(如果有的話)

"end":對(duì)應(yīng)已存在文本的后一個(gè)位置

"insert":對(duì)應(yīng)插入光標(biāo)的當(dāng)前位置

鼠標(biāo)坐標(biāo)("@x"):x 是鼠標(biāo)位置與 Entry 左側(cè)邊緣的水平距離,這樣就可以通過鼠標(biāo)相對(duì)地定位字符的位置

參數(shù)

Entry(master=None, **options) (class)

master -- 父組件

**options -- 組件選項(xiàng),下方表格詳細(xì)列舉了各個(gè)選項(xiàng)的具體含義和用法:

選項(xiàng)含義
background1. 設(shè)置 Entry 的背景顏色
2. 默認(rèn)值由系統(tǒng)指定
bg跟 background 一樣
borderwidth1. 設(shè)置 Entry 的邊框?qū)挾?br />2. 默認(rèn)值是 1 或 2 像素
bd跟 borderwidth 一樣
cursor1. 指定當(dāng)鼠標(biāo)在 Entry 上飄過的時(shí)候的鼠標(biāo)樣式
2. 默認(rèn)值由系統(tǒng)指定
exportselection1. 指定選中的文本是否可以被復(fù)制到剪貼板
2. 默認(rèn)值是 True
3. 可以修改為 False 表示不允許復(fù)制文本
font1. 指定 Entry 中文本的字體
2. 默認(rèn)值由系統(tǒng)指定
foreground1. 設(shè)置 Entry 的文本顏色
2. 默認(rèn)值由系統(tǒng)指定
fg跟 foreground 一樣
highlightbackground1. 指定當(dāng) Entry 沒有獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightcolor1. 指定當(dāng) Entry 獲得焦點(diǎn)的時(shí)候高亮邊框的顏色
2. 默認(rèn)值由系統(tǒng)指定
highlightthickness1. 指定高亮邊框的寬度
2. 默認(rèn)值是 1 或 2 像素
insertbackground指定輸入光標(biāo)的顏色
insertborderwidth1. 指定輸入光標(biāo)的邊框?qū)挾?br />2. 如果被設(shè)置為非 0 值,光標(biāo)樣式會(huì)被設(shè)置為 RAISED
3. 小甲魚溫馨提示:將 insertwidth 設(shè)置大一點(diǎn)才能看到效果哦
insertofftime1. 該選項(xiàng)控制光標(biāo)的閃爍頻率(滅)
2. 單位是毫秒
insertontime1. 該選項(xiàng)控制光標(biāo)的閃爍頻率(亮)
2. 單位是毫秒
insertwidth1. 指定光標(biāo)的寬度
2. 默認(rèn)值是 1 或 2 像素
invalidcommand1. 指定當(dāng)輸入框輸入的內(nèi)容“非法”時(shí)調(diào)用的函數(shù)
2. 也就是指定當(dāng) validateCommand 選項(xiàng)指定的函數(shù)返回 False 時(shí)的函數(shù)
3. 詳見本內(nèi)容最下方小甲魚關(guān)于驗(yàn)證詳解
invcmd跟 invalidcommand 一樣
justify1. 定義如何對(duì)齊輸入框中的文本
2. 使用 "left","right" 或 "center"
3. 默認(rèn)值是 "left"
relief1. 指定邊框樣式
2. 默認(rèn)值是 "sunken"
3. 其他可以選擇的值是 "flat","raised","groove" 和 "ridge"
selectbackground1. 指定輸入框的文本被選中時(shí)的背景顏色
2. 默認(rèn)值由系統(tǒng)指定
selectborderwidth1. 指定輸入框的文本被選中時(shí)的邊框?qū)挾龋ㄟx中邊框)
2. 默認(rèn)值由系統(tǒng)指定
selectforeground1. 指定輸入框的文本被選中時(shí)的字體顏色
2. 默認(rèn)值由系統(tǒng)指定
show1. 設(shè)置輸入框如何顯示文本的內(nèi)容
2. 如果該值非空,則輸入框會(huì)顯示指定字符串代替真正的內(nèi)容
3. 將該選項(xiàng)設(shè)置為 "*",則是密碼輸入框
state1. Entry 組件可以設(shè)置的狀態(tài):"normal","disabled" 或 "readonly"(注意,它跟 "disabled" 相似,但它支持選中和拷貝,只是不能修改,而 "disabled" 是完全禁止)
2. 默認(rèn)值是 "normal"
3. 注意,如果此選項(xiàng)設(shè)置為 "disabled" 或 "readonly",那么調(diào)用 insert() 和 delete() 方法都會(huì)被忽略
takefocus1. 指定使用 Tab 鍵可以將焦點(diǎn)移動(dòng)到輸入框中
2. 默認(rèn)是開啟的,可以將該選項(xiàng)設(shè)置為 False 避免焦點(diǎn)在此輸入框中
textvariable1. 指定一個(gè)與輸入框的內(nèi)容相關(guān)聯(lián)的 Tkinter 變量(通常是 StringVar)
2. 當(dāng)輸入框的內(nèi)容發(fā)生改變時(shí),該變量的值也會(huì)相應(yīng)發(fā)生改變
validate1. 該選項(xiàng)設(shè)置是否啟用內(nèi)容驗(yàn)證
2. 詳見本內(nèi)容最下方小甲魚關(guān)于驗(yàn)證詳解
validatecommand1. 該選項(xiàng)指定一個(gè)驗(yàn)證函數(shù),用于驗(yàn)證輸入框內(nèi)容是否合法
2. 驗(yàn)證函數(shù)需要返回 True 或 False 表示驗(yàn)證結(jié)果
3. 注意,該選項(xiàng)只有當(dāng) validate 的值非 "none" 時(shí)才有效
3. 詳見本內(nèi)容最下方小甲魚關(guān)于驗(yàn)證詳解
vcmd跟 validatecommand 一樣
width1. 設(shè)置輸入框的寬度,以字符為單位
2. 默認(rèn)值是 20
3. 對(duì)于變寬字體來說,組件的實(shí)際寬度等于字體的平均寬度乘以 width 選項(xiàng)的值
xscrollcommand1. 與 scrollbar(滾動(dòng)條)組件相關(guān)聯(lián)
2. 如果你覺得用戶輸入的內(nèi)容會(huì)超過該組件的輸入框?qū)挾龋敲纯梢钥紤]設(shè)置該選項(xiàng)
3. 使用方法可以參考:Scrollbar 組件

方法

delete(first, last=None) 

-- 刪除參數(shù) first 到 last 范圍內(nèi)(包含 first 和 last)的所有內(nèi)容
-- 如果忽略 last 參數(shù),表示刪除 first 參數(shù)指定的選項(xiàng)
-- 使用 delete(0, END) 實(shí)現(xiàn)刪除輸入框的所有內(nèi)容

get()

-- 獲得當(dāng)前輸入框的內(nèi)容

icursor(index)

-- 將光標(biāo)移動(dòng)到 index 參數(shù)指定的位置
-- 這同時(shí)也會(huì)設(shè)置 INSERT 的值

index(index) 

-- 返回與 index 參數(shù)相應(yīng)的選項(xiàng)的序號(hào)(例如 e.index(END))

insert(index, text) 

-- 將 text 參數(shù)的內(nèi)容插入到 index 參數(shù)指定的位置
-- 使用 insert(INSERT, text) 將 text 參數(shù)指定的字符串插入到光標(biāo)的位置
-- 使用 insert(END, text) 將 text 參數(shù)指定的字符串插入到輸入框的末尾

scan_dragto(x) 

--  見下方 scan_mark(x)

scan_mark(x)

-- 使用這種方式來實(shí)現(xiàn)輸入框內(nèi)容的滾動(dòng)
-- 需要將鼠標(biāo)按下事件綁定到 scan_mark(x) 方法(x 是鼠標(biāo)當(dāng)前的水平位置),然后再將 <motion> 事件綁定到 scan_dragto(x) 方法(x 是鼠標(biāo)當(dāng)前的水平位置),就可以實(shí)現(xiàn)輸入框在當(dāng)前位置和 sacn_mack(x) 指定位置之間的水平滾動(dòng)

select_adjust(index)
-- 與 selection_adjust(index) 相同,見下方解釋

select_clear()
-- 與 selection_clear() 相同,見下方解釋

select_from(index)
-- 與 selection_from(index) 相同,見下方解釋

select_present()
-- 與 selection_present() 相同,見下方解釋

select_range(start, end)
-- 與 selection_range(start, end) 相同,見下方解釋

select_to(index)
-- 與 selection_to(index) 相同,見下方解釋

selection_adjust(index)
-- 該方法是為了確保輸入框中選中的范圍包含 index 參數(shù)所指定的字符
-- 如果選中的范圍已經(jīng)包含了該字符,那么什么事情也不會(huì)發(fā)生
-- 如果選中的范圍不包含該字符,那么會(huì)從光標(biāo)的位置將選中的范圍擴(kuò)展至該字符

selection_clear()
-- 取消選中狀態(tài)

selection_from(index)
-- 開始一個(gè)新的選中范圍
-- 會(huì)設(shè)置 ANCHOR 的值

selection_present()
-- 返回輸入框是否有處于選中狀態(tài)的文本
-- 如果有則返回 True,否則返回 False

selection_range(start, end)
-- 設(shè)置選中范圍
-- start 參數(shù)必須必 end 參數(shù)小
-- 使用 selection_range(0, END) 選中整個(gè)輸入框的所有內(nèi)容

selection_to(index)
-- 選中 ANCHOR 到 index 參數(shù)的間的所有內(nèi)容

xview(index)
-- 該方法用于確保給定的 index 參數(shù)所指定的字符可見
-- 如有必要,會(huì)滾動(dòng)輸入框的內(nèi)容

xview_moveto(fraction)
-- 根據(jù) fraction 參數(shù)給定的比率調(diào)整輸入框內(nèi)容的可見范圍
-- fraction 參數(shù)的范圍是 0.0 ~ 1.0,0.0 表示輸入框的開始位置,1.0 表示輸入框的結(jié)束位置

xview_scroll(number, what)
-- 根據(jù)給定的參數(shù)水平滾動(dòng)輸入框的可見范圍
-- number 參數(shù)指定滾動(dòng)的數(shù)量,如果是負(fù)數(shù)則表示反向滾動(dòng)
-- what 參數(shù)指定滾動(dòng)的單位,可以是 UNITS 或 PAGES(UNITS 表示一個(gè)字符單元,PAGES 表示一頁)

關(guān)于驗(yàn)證詳解

由于查看了不少資料,很多在這里都沒有解釋清楚,所以這里單獨(dú)列出來詳細(xì)講解下。

Entry 組件是支持驗(yàn)證輸入內(nèi)容的合法性的,比如要求輸入數(shù)字,你輸入了字母那就是非法。實(shí)現(xiàn)該功能,需要通過設(shè)置 validate、validatecommand 和 invalidcommand 選項(xiàng)。

首先啟用驗(yàn)證的“開關(guān)”是 validate 選項(xiàng),該選項(xiàng)可以設(shè)置的值有:

含義
'focus'當(dāng) Entry 組件獲得或失去焦點(diǎn)的時(shí)候驗(yàn)證
'focusin'當(dāng) Entry 組件獲得焦點(diǎn)的時(shí)候驗(yàn)證
'focusout'當(dāng) Entry 組件失去焦點(diǎn)的時(shí)候驗(yàn)證
'key'當(dāng)輸入框被編輯的時(shí)候驗(yàn)證
'all'當(dāng)出現(xiàn)上邊任何一種情況的時(shí)候驗(yàn)證
'none'1. 關(guān)閉驗(yàn)證功能
2. 默認(rèn)設(shè)置該選項(xiàng)(即不啟用驗(yàn)證)
3. 注意,是字符串的 'none',而非 None

其次是為 validatecommand 選項(xiàng)指定一個(gè)驗(yàn)證函數(shù),該函數(shù)只能返回 True 或 False 表示驗(yàn)證的結(jié)果。一般情況下驗(yàn)證函數(shù)只需要知道輸入框的內(nèi)容即可,可以通過 Entry 組件的 get() 方法獲得該字符串。

下邊的例子中,在第一個(gè)輸入框輸入“CSDN” 并通過 Tab 鍵或者鼠標(biāo)將焦點(diǎn)轉(zhuǎn)移到第二個(gè)輸入框的時(shí)候,驗(yàn)證功能被成功觸發(fā):

import tkinter as tk
 
master = tk.Tk()
 
def test():
    if e1.get() == "CSDN":
        print("正確!")
        return True
    else:
        print("錯(cuò)誤!")
        e1.delete(0, "end")
        return False
 
v = tk.StringVar()
 
e1 = tk.Entry(master, textvariable=v, validate="focusout", validatecommand=test)
e2 = tk.Entry(master)
e1.pack(padx=10, pady=10)
e2.pack(padx=10, pady=10)
 
master.mainloop()

然后,invalidcommand 選項(xiàng)指定的函數(shù)只有在 validatecommand 的返回值為 False 的時(shí)候才被調(diào)用。

下邊的例子中,在第一個(gè)輸入框輸入“csdn”,并通過 Tab 鍵將焦點(diǎn)轉(zhuǎn)移到第二個(gè)輸入框,validatecommand 指定的驗(yàn)證函數(shù)被觸發(fā)并返回 False,接著 invalidcommand 被觸發(fā):

import tkinter as tk
 
master = tk.Tk()
 
def test():
    if e1.get() == "CSDN":
        print("正確!")
        return True
    else:
        print("錯(cuò)誤!")
        e1.delete(0, "end")
        return False
 
def test2():
    print("我被調(diào)用了......")
    return True
 
v = tk.StringVar()
 
e1 = tk.Entry(master, textvariable=v, validate="focusout", validatecommand=test, invalidcommand=test2)
e2 = tk.Entry(master)
e1.pack(padx=10, pady=10)
e2.pack(padx=10, pady=10)
 
master.mainloop()

最后,其實(shí) Tkinter 還有隱藏技能,不過需要冷卻才能觸發(fā),請(qǐng)聽我一一道來......

Tkinter 為驗(yàn)證函數(shù)提供一些額外的選項(xiàng):

額外選項(xiàng)含義
'%d'操作代碼:0 表示刪除操作;1 表示插入操作;2 表示獲得、失去焦點(diǎn)或 textvariable 變量的值被修改
'%i'1. 當(dāng)用戶嘗試插入或刪除操作的時(shí)候,該選線表示插入或刪除的位置(索引號(hào))
2. 如果是由于獲得、失去焦點(diǎn)或 textvariable 變量的值被修改而調(diào)用驗(yàn)證函數(shù),那么該值是 -1
'%P'1. 當(dāng)輸入框的值允許改變的時(shí)候,該值有效
2. 該值為輸入框的最新文本內(nèi)容
'%s'該值為調(diào)用驗(yàn)證函數(shù)前輸入框的文本內(nèi)容
'%S'1. 當(dāng)插入或刪除操作觸發(fā)驗(yàn)證函數(shù)的時(shí)候,該值有效
2. 該選項(xiàng)表示文本被插入和刪除的內(nèi)容
'%v'該組件當(dāng)前的 validate 選項(xiàng)的值
'%V'1. 調(diào)用驗(yàn)證函數(shù)的原因
2. 該值是 'focusin','focusout','key' 或 'forced'(textvariable 選項(xiàng)指定的變量值被修改)中的一個(gè)
'%W'該組件的名字

為了使用這些選項(xiàng),你可以這樣寫:validatecommand=(f, s1, s2, ...)

其中,f 就是你“冷卻后”的驗(yàn)證函數(shù)名,s1、s2、s3 這些是額外的選項(xiàng),這些選項(xiàng)會(huì)作為參數(shù)依次傳給 f 函數(shù)。我們剛剛說了,使用隱藏技能前需要冷卻,其實(shí)就是調(diào)用 register() 方法將驗(yàn)證函數(shù)包裝起來:

import tkinter as tk
 
master = tk.Tk()
 
v = tk.StringVar()
 
def test(content, reason, name):
    if content == "CSDN":
        print("正確!")
        print(content, reason, name)
        return True
    else:
        print("錯(cuò)誤!")
        print(content, reason, name)
        return False
 
testCMD = master.register(test)
e1 = tk.Entry(master, textvariable=v, validate="focusout", validatecommand=(testCMD, '%P', '%v', '%W'))
e2 = tk.Entry(master)
e1.pack(padx=10, pady=10)
e2.pack(padx=10, pady=10)
 
master.mainloop()

當(dāng)我故意輸入“CSDN我愛你”的時(shí)候,DUANG的一下,是錯(cuò)誤的,后來我果斷刪除了“我愛你”,嘿,又正確了:

 到此這篇關(guān)于Tkinter組件Entry的具體使用的文章就介紹到這了,更多相關(guān)Tkinter Entry內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中元組的概念及應(yīng)用小結(jié)

    Python中元組的概念及應(yīng)用小結(jié)

    Python中的元組和列表很相似,元組也是Python語言提供的內(nèi)置數(shù)據(jù)結(jié)構(gòu)之一,可以在代碼中直接使用,這篇文章主要介紹了Python中元組的概念以及應(yīng)用,需要的朋友可以參考下
    2023-01-01
  • Python2與Python3的區(qū)別詳解

    Python2與Python3的區(qū)別詳解

    這篇文章主要介紹了Python2與Python3的區(qū)別詳解,需要的朋友可以參考下
    2020-02-02
  • Python中條件語句、循環(huán)語句和pass語句的使用示例

    Python中條件語句、循環(huán)語句和pass語句的使用示例

    Python條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊,下面這篇文章主要給大家介紹了關(guān)于Python中條件語句、循環(huán)語句和pass語句使用的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Python中關(guān)于Sequence切片的下標(biāo)問題詳解

    Python中關(guān)于Sequence切片的下標(biāo)問題詳解

    這篇文章主要給大家介紹了Python中關(guān)于Sequence切片下標(biāo)問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • python判斷字符串是否包含子字符串的方法

    python判斷字符串是否包含子字符串的方法

    這篇文章主要介紹了python判斷字符串是否包含子字符串的方法,實(shí)例分析了Python中的in與find方法來實(shí)現(xiàn)這一功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python matplotlib以日期為x軸作圖代碼實(shí)例

    Python matplotlib以日期為x軸作圖代碼實(shí)例

    這篇文章主要介紹了Python matplotlib以日期為x軸作圖代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 一篇文章帶你了解python字典基礎(chǔ)

    一篇文章帶你了解python字典基礎(chǔ)

    這篇文章主要介紹了Python字典及字典基本操作方法,結(jié)合實(shí)例形式詳細(xì)分析了Python字典的概念、創(chuàng)建、格式化及常用操作方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-08-08
  • python pywinauto使用過程及問題小結(jié)

    python pywinauto使用過程及問題小結(jié)

    在pywinauto庫中,uia即UIAutomation,是微軟提供的用于用戶界面自動(dòng)化測(cè)試和輔助功能訪問的技術(shù)框架,UIAutomation支持自動(dòng)化腳本與各種UI元素交互,本文給大家介紹python pywinauto使用過程及問題小結(jié),感興趣的朋友一起看看吧
    2024-10-10
  • Python連接和操作Elasticsearch的詳細(xì)指南

    Python連接和操作Elasticsearch的詳細(xì)指南

    Elasticsearch 是一個(gè)強(qiáng)大的搜索引擎,廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)和搜索場(chǎng)景,通過 Python,我們可以方便地與 Elasticsearch 進(jìn)行交互,本文將詳細(xì)介紹如何在本地使用 Python 連接到服務(wù)器上的 Elasticsearch,并進(jìn)行基本的操作,需要的朋友可以參考下
    2024-12-12
  • Python之web模板應(yīng)用

    Python之web模板應(yīng)用

    這篇文章主要介紹了Python之web模板應(yīng)用,web模板可以更加靈活和方便的控制HTML的顯示,非常具有實(shí)用價(jià)值,有需要的小伙伴可以參考下
    2017-12-12

最新評(píng)論

石棉县| 云林县| 韶关市| 沁水县| 宁化县| 内丘县| 临西县| 西和县| 宜昌市| 邳州市| 延边| 北票市| 沙雅县| 禹州市| 土默特左旗| 甘南县| 牟定县| 建瓯市| 鄂伦春自治旗| 汪清县| 新兴县| 包头市| 扎囊县| 拜泉县| 黄梅县| 彩票| 万载县| 平陆县| 星子县| 泽普县| 东乌珠穆沁旗| 贵州省| 长春市| 安福县| 宁南县| 恭城| 丽水市| 清水县| 北宁市| 利辛县| 淅川县|