Python wxPython庫使用wx.ListBox創(chuàng)建列表框示例
本文實例講述了Python wxPython庫使用wx.ListBox創(chuàng)建列表框。分享給大家供大家參考,具體如下:
如何創(chuàng)建一個列表框?
列表框是提供給用戶選擇的另一機制。選項被放置在一個矩形的窗口中,用戶可以選擇一個或多個。列表框比單選按鈕占據(jù)較少的空間,當選項的數(shù)目相對少的時候,列表框是一個好的選擇。然而,如果用戶必須將滾動條拉很遠才能看到所有的選項的話,那么它的效用就有所下降了。下圖顯示了一個wxPython列表框。
在wxPython中,列表框是類wx.ListBox
的元素。該類的方法使你能夠處理列表中的選擇。
如何創(chuàng)建一個列表框?
顯示ListBox列表框的代碼
import wx class ListBoxFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, 'www.dbjr.com.cn - 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
的構(gòu)造函數(shù)類似于單選框的,如下所示:
wx.ListBox(parent,
id, pos=wx.DefaultPosition,
size=wx.DefaultSize, choices=None, style=0,
validator=wx.DefaultValidator, name="listBox")
單選框和列表框的主要區(qū)別是wx.ListBox沒有l(wèi)abel屬性。顯示在列表中的元素放置在參數(shù)choices中,它是一個字符串的序列。列表框有三種互斥的樣式,它決定用戶如何從列表框中選擇元素,說明在列表框的選擇類型樣式表中。
用戶通常對于多選有一些問題,因為它們一般希望見到的是單選列表,對于多選來說可能是有挑戰(zhàn)性的(就像單選題和多選題一樣),尤其是對于那些易受困擾的用戶。如果你使用了一個多選的列表,我們建議你清楚地標明該列表。
列表框的選擇類型樣式表
wx.LB_EXTENDED | 用戶可以通過使用shift并敲擊鼠標來選擇一定范圍內(nèi)的連續(xù)的選項,或使用等同功能的按鍵。 |
wx.LB_MULTIPLE | 用戶可以一次選擇多個選項(選項可以是不連續(xù)的)。實際上,在這種情況下,列表框的行為就像是一組復選框。 |
wx.LB_SINGLE | 用戶一次只能選一個選項。實際上,在這種情況下,列表框的行為就像是一組單選按鈕。 |
有三種控制wx.ListBox中滾動條的顯示的樣式,如下表所示。
列表框的滾動條類型樣式表
wx.LB_ALWAYS_SB | 列表框?qū)⑹冀K顯示一個垂直的滾動條,不管有沒有必要。 |
wx.LB_HSCROLL | 如果本地控支持,那么列表框在選擇項太多時,將創(chuàng)建一個水平滾動條。 |
wx.LB_HSCROLL | 列表框只在需要的時候顯示一個垂直的滾動條。這是默認樣式。 |
還有一個樣式wx.LB_SORT
,它使得列表中的元素按字母順序排序。
有兩個專用于wx.ListBox的命令事件。EVT_LISTBOX事件在當列表中的一個元素被選擇時觸發(fā)(即使它是當前所選擇的元素)。如果列表被雙擊,EVT_LISTBOX_DCLICK事件發(fā)生。
有一些專用于列表框的方法,你可以用來處理框中的項目。列表框的方法表對許多的方法作了說明。列表框中的項目索引從0開始。
一旦你有了一個列表框,自然就想把它與其它的窗口部件結(jié)合起來使用,如下拉菜單,或復選框。在下一節(jié),我們對此作討論。
列表框的方法表
Append(item) | 把字符串項目添加到列表框的尾部。 |
Clear() | 清空列表框。 |
Delete(n) | 刪除列表框中索引為n的項目。 |
Deselect(n) | 在多重選擇列表框中,導致位于位置n的選項取消選中。在其它樣式中不起作用。 |
FindString(string) | 返回給定字符串的整數(shù)位置,如果沒有發(fā)現(xiàn)則返回-1。 |
GetCount() | 返回列表中字符串的數(shù)量。 |
GetSelection() | GetSelection()得到當前選擇項的整數(shù)索引(僅對于單選列表)。對于多選列表,使用GetSelections()來返回包含所選項目的整數(shù)位置的元組。對于單選列表,GetStringSelection()返回當前選擇的字符串。相應的set方法使用布爾值參數(shù)select設置指定字符串或索引選項的狀態(tài)。使用這種方法改變選擇不觸發(fā)EVT_LISTBOX事件。 |
SetSelection(n, select) | |
GetStringSelection() | |
SetStringSelection(string, select) | |
GetSelections() | |
GetString(n) | 得到位置n處的字符串。 |
SetString(n, string) | 設置位置n處的字符串。 |
InsertItems(items, pos) | 插入?yún)?shù)items中的字符串列表到該列表框中pos參數(shù)所指定的位置前。位置0表示把項目放在列表的開頭。 |
Selected(n) | 返回對應于索引為n的項目的選擇狀態(tài)的布爾值。 |
Set(choices) | 重新使用choices的內(nèi)容設置列表框。 |
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
通過實例了解Python str()和repr()的區(qū)別
這篇文章主要介紹了通過實例了解Python str()和repr()的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01Python?pandas中read_csv參數(shù)示例詳解
使用pandas做數(shù)據(jù)處理的第一步就是讀取數(shù)據(jù),數(shù)據(jù)源可以來自于各種地方,csv文件便是其中之一,下面這篇文章主要給大家介紹了關于Python?pandas中read_csv參數(shù)詳解的相關資料,需要的朋友可以參考下2023-01-01