PyQt的QTableWidget的全面总结与归纳
這幾天用QTableWidget用得很多,查了很多資料,發現大多數都不是很全,有時候查資料查得很辛苦;另一方面,以防以后自己忘了這些知識,所以在這里就把我所接觸到的,所看到的都歸納在這里。
首先QTableWidget是繼承于QTableView,QTableWidget是QT程序中常用的顯示數據表格的空間;它跟QTableView的主要區別是QTableView可以使用自定義的數據模型來顯示內容(也就是先要通過setModel來綁定數據源),而QTableWidget則只能使用標準的數據模型,并且其單元格數據是通過QTableWidgetItem的對象來實現的(也就是不需要數據源,將逐個單元格的信息填好即可。這主要是因為QTableView內的setModel成員函數在QTableWidget類中成了私有成員,所以QTableWidget只能依賴于QTableWidgetItem。QTableWidgetItem用來填充表格中的一個單元格,整個表格都需要逐個單元格逐個單元格地構建起來。
然后我們就來看看QTableWidget中常用的方法。
首先生成一個MyTable=QTableWidget()
1.設置表單樣式
設置列數:MyTable.setColumnCount(3)
設置行數:MyTable.setRowCount(4)
設置默認列寬:myTable.horizontalHeader().setDefaultSectionSize(200)
設置默認行高:myTable.verticalHeader().setDefaultSectionSize(300)
設置某一列寬:myTable.horizontalHeader().resizeSection(0,300) #設置第一列的寬度
設置某一行高:myTable.verticalHeader().resizeSection(0,500) #設置第一行的高度
設置某一列寬:
設置某一列高:
設置橫向表頭的高度:myTable.horizontalHeader().setFixedHeight(100),且只能用該類方法設置橫向表頭的高度,
設置縱向表頭的寬度:myTable.verticalHeader().setFixedWidth(300) ,且只能用該類方法設置縱向表頭的寬度
設置表頭不可點擊:myTable.verticalHeader().setClickable(False)
設置表頭字體加粗:font=myTable.horizontalHeader().font()
???????????????????????? ?????? font.setBold(False)
??????????????????????????????? myTable.horizontalHeader().setFont(font)?? 是指整個橫向表頭
設置表頭不塌陷:myTable.horizontalHeader().setHighlightSections(False)
設置表頭內某個元素的顏色:item=myTable.horizontalHeaderItem(1)
?????????????????????????????????????????????? item.setTextColor(QColor("red"))?? ,設置橫向表頭第二個元素的顏色
設置表頭內某個元素的字體加粗:font=QFont()
???????????????????????????????????????????????????? font.setBold(True)
???????????????????????????????????????????????????? item=myTable.horizontalHeaderItem(0)
?????????????????????????????????????????????????????item.setFont(font), 設置橫向表頭第一個元素的字體加粗
設置表頭內容:list=[u'寶貝',u'日子',u'多個',u'話費']
???????????????????????? myTable.setHorizontalHeaderLabels(list)
設置表格內容的填充屬性:
設置隱藏表頭:myTable.horizontalHeader().setVisible(False)
設置表格外部無邊框:myTable.setFrameShape(QFrame.Box)
設置不顯示格子線:myTable.setShowGrid(False)
設置表格的編輯屬性:QAbstractItemView.NoEditTriggers:不可編輯
????????????????????????????????????QAbstractItemView.CurrentChanged:改變了即可編輯
??????????????????????????????????? QAbstractItemView.DoubleClicked:連續雙擊即可編輯
??????????????????????????????????? QAbstractItemView.SelectedClicked:在被選中的情況下單擊一次即可編輯
????????????????????????????????????QAbstractItemView.EditKeyPressed:在按下平臺的編輯鍵那個項目上即可編輯
選擇時每次選擇一行:myTable.setSelectionBehavior(QAbstractItemView.SelectRows),
??????????????????????????????????? 也可以設置參數為SelectColumns,這樣就會選擇一列。
選擇表格模式:myTable.setSelectionMode(QAbstractItemView.ExtendedSelection)
今天先寫到這里,明天有時間再繼續更
???????????????????
總結
以上是生活随笔為你收集整理的PyQt的QTableWidget的全面总结与归纳的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python里面对文件的读写操作
- 下一篇: 静态网页和动态网页的区别(转载)