您好,登錄后才能下訂單哦!
本文實例講述了Python wxPython庫使用wx.ListBox創建列表框。分享給大家供大家參考,具體如下:
如何創建一個列表框?
列表框是提供給用戶選擇的另一機制。選項被放置在一個矩形的窗口中,用戶可以選擇一個或多個。列表框比單選按鈕占據較少的空間,當選項的數目相對少的時候,列表框是一個好的選擇。然而,如果用戶必須將滾動條拉很遠才能看到所有的選項的話,那么它的效用就有所下降了。下圖顯示了一個wxPython列表框。
在wxPython中,列表框是類wx.ListBox
的元素。該類的方法使你能夠處理列表中的選擇。
如何創建一個列表框?
顯示ListBox列表框的代碼
import wx class ListBoxFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'www.jb51.net - List Box Example', size=(380, 250)) panel = wx.Panel(self, -1) sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen'] listBox = wx.ListBox(panel, -1, (20, 20), (80, 120), sampleList, wx.LB_SINGLE) listBox.SetSelection(3) if __name__ == '__main__': app = wx.PySimpleApp() ListBoxFrame().Show() app.MainLoop()
wx.ListBox
的構造函數類似于單選框的,如下所示:
wx.ListBox(parent,
id, pos=wx.DefaultPosition,
size=wx.DefaultSize, choices=None, style=0,
validator=wx.DefaultValidator, name="listBox")
單選框和列表框的主要區別是wx.ListBox沒有label屬性。顯示在列表中的元素放置在參數choices中,它是一個字符串的序列。列表框有三種互斥的樣式,它決定用戶如何從列表框中選擇元素,說明在列表框的選擇類型樣式表中。
用戶通常對于多選有一些問題,因為它們一般希望見到的是單選列表,對于多選來說可能是有挑戰性的(就像單選題和多選題一樣),尤其是對于那些易受困擾的用戶。如果你使用了一個多選的列表,我們建議你清楚地標明該列表。
列表框的選擇類型樣式表
wx.LB_EXTENDED | 用戶可以通過使用shift并敲擊鼠標來選擇一定范圍內的連續的選項,或使用等同功能的按鍵。 |
wx.LB_MULTIPLE | 用戶可以一次選擇多個選項(選項可以是不連續的)。實際上,在這種情況下,列表框的行為就像是一組復選框。 |
wx.LB_SINGLE | 用戶一次只能選一個選項。實際上,在這種情況下,列表框的行為就像是一組單選按鈕。 |
有三種控制wx.ListBox中滾動條的顯示的樣式,如下表所示。
列表框的滾動條類型樣式表
wx.LB_ALWAYS_SB | 列表框將始終顯示一個垂直的滾動條,不管有沒有必要。 |
wx.LB_HSCROLL | 如果本地控支持,那么列表框在選擇項太多時,將創建一個水平滾動條。 |
wx.LB_HSCROLL | 列表框只在需要的時候顯示一個垂直的滾動條。這是默認樣式。 |
還有一個樣式wx.LB_SORT
,它使得列表中的元素按字母順序排序。
有兩個專用于wx.ListBox的命令事件。EVT_LISTBOX事件在當列表中的一個元素被選擇時觸發(即使它是當前所選擇的元素)。如果列表被雙擊,EVT_LISTBOX_DCLICK事件發生。
有一些專用于列表框的方法,你可以用來處理框中的項目。列表框的方法表對許多的方法作了說明。列表框中的項目索引從0開始。
一旦你有了一個列表框,自然就想把它與其它的窗口部件結合起來使用,如下拉菜單,或復選框。在下一節,我們對此作討論。
列表框的方法表
Append(item) | 把字符串項目添加到列表框的尾部。 |
Clear() | 清空列表框。 |
Delete(n) | 刪除列表框中索引為n的項目。 |
Deselect(n) | 在多重選擇列表框中,導致位于位置n的選項取消選中。在其它樣式中不起作用。 |
FindString(string) | 返回給定字符串的整數位置,如果沒有發現則返回-1。 |
GetCount() | 返回列表中字符串的數量。 |
GetSelection() | GetSelection()得到當前選擇項的整數索引(僅對于單選列表)。對于多選列表,使用GetSelections()來返回包含所選項目的整數位置的元組。對于單選列表,GetStringSelection()返回當前選擇的字符串。相應的set方法使用布爾值參數select設置指定字符串或索引選項的狀態。使用這種方法改變選擇不觸發EVT_LISTBOX事件。 |
SetSelection(n, select) | |
GetStringSelection() | |
SetStringSelection(string, select) | |
GetSelections() | |
GetString(n) | 得到位置n處的字符串。 |
SetString(n, string) | 設置位置n處的字符串。 |
InsertItems(items, pos) | 插入參數items中的字符串列表到該列表框中pos參數所指定的位置前。位置0表示把項目放在列表的開頭。 |
Selected(n) | 返回對應于索引為n的項目的選擇狀態的布爾值。 |
Set(choices) | 重新使用choices的內容設置列表框。 |
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。