python中網格Grid和列表List的認識


一、網格Grid的有關操作
imort wx.Grid
class SimpleGrid( wx.grid.Grid )   # 定義類,繼承wx.grid.Grid
wx.grid.Grid.__init__( self, parent, -1, (40,30) , (500,280) )     # 初始化
self.CreateGrid(5, 3)   # 創建網格
self.SetColLabelValue( 0, "姓名" )  # 設置列的名稱
self.SetColSize ( 0, 50 )                # 設置列的寬度
self.SetRowLabelValue( 0 ,  ""   )       # 設置行的名稱
self.SetCellValue( i,  j, value)       # 設置單元格的值,這個值一定要是字符或字符串格式
另外還可以設置單元格的背景色和前景色等等
二、列表的操作
datasource = [    [ "", "", "", ],  ["··········"],··········
                      ]                        # 數據源可以是列表格式,但大多情況下是列表中嵌套有子列表,也可以是字典格式
class NewList( wx.ListCtrl ):
self.InsertColumn( i, colname)  # 設置列的值,同樣也必須是字符或字符創格式
self.SetColumnWidth(0, 55)     # 設置列的寬度
# 以下語句是得到datasource中第一個子列表的索引,返回值index是int值,從0開始,可理解為行,
          加上sys.maxint表示是從最后一行一直加下去,因此頭文件中要導入sys模塊
data = datasource[0]
index = self.InsertStringItem(sys.maxint, data [0])

        self.SetStringItem( index, j, data[j] )  # 設置該行各列的值
在建立列表時,容易出現的錯誤有以下幾種,也是我剛開始接觸時犯的錯誤。
1、關於style 的問題,style = wx.LC_REPORT,這個問題是一個很大的問題,一個搞清除自己的列表是什么性質的,若只是一個報告形式的表,style 設置為wx.LC_REPORT就行了,不能在添加其他形式的了,和容易因為這個原因導致python代碼運行出錯。這個問題困擾了我半天,剛開始把所有的style 都添加進去了,呵呵
2、列表初始化以后,不能象Grid那樣可直接設置行數和列數來創建新的網格,而是一個空的列表,只有向里面添加項目之后才能夠使用語句self.SetStringItem(  i,  j,  value )來針對某一個具體的單元格設置,否則也會出錯。
以上是我的各人經驗,歡迎交流python的有關知識。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM