PyQt(Python+Qt)學習隨筆:QTableWidget的currentItem、rowCount、columnCount等部件狀態屬性訪問方法

老猿將QTableWidget表格部件中反映部件當前情況的一些方法歸類爲部件狀態訪問方法,包括部件的行數、列數、當前項、當前行、當前列等屬性訪問方法。

1、行數rowCount

QTableWidget的rowCount屬性保存表格部件中的行數,在QTableWidget創建時如果沒有指定行數,則缺省行數爲0,QTableWidget創建後可以通過 setRowCount方法調整行數。

要獲取當前表格部件中的行數,可以通過rowCount()方法獲取,要設置表格部件的行數,可以通過setRowCount(int rows)調整表格的行數,如果參數rows小於現在表格中的實際行數,則表格中超出參數的行數數據會丟棄,就算是後面將行數或列數恢復也不能恢複相關數據。

2、列數columnCount

columnCount屬性保存表格部件中的列數,相關屬性和操作方法和rowCount類似。在QTableWidget創建時如果沒有指定列數,則缺省列數爲0,QTableWidget創建後可以通過 setColumnCount方法調整。

columnCount可以通過columnCount()方法獲取,通過setColumnCount(int columns)設置。

3、當前項訪問方法

當前項是指當前鼠標和鍵盤焦點所在項,在項可以進行選擇操作時,當前項可以是選中狀態,也可以是未選中狀態,選中項也不一定是當前項。與當前項相關的方法包括:

  • QTableWidgetItem currentItem() :返回當前項對應項對象,如果沒有當前項則返回None
  • setCurrentItem(QTableWidgetItem item):設置當前項
  • setCurrentItem(QTableWidgetItem item, QItemSelectionModel.SelectionFlags command):設置當前項
  • setCurrentCell(int row, int column):設置當前項
  • setCurrentCell(int row, int column, QItemSelectionModel.SelectionFlags command):設置當前項
注意:
  1. 後面4個方法都是設置當前項,方法名爲setCurrentItem的參數是QTableWidgetItem實例,方法名爲setCurrentCell的參數是行和列,即這兩類方法依據的項定位方法不同
  2. 參數中帶command參數的,要求除了將當前項改爲參數確認的項之外,還要求有額外的響應,具體響應由command參數確認。關於QItemSelectionModel.SelectionFlags 請參考《PyQt(Python+Qt)學習隨筆:Mode/View中的枚舉類QItemSelectionModel.SelectionFlag取值及含義》;
  3. 設置當前項的方法無返回值,如果設置失敗(如指定參數項在部件中不存在)是無法直接判斷的,如果設置成功,會觸發QTableWidget部件發射信號currentItemChanged和currentCellChanged信號以及currentChanged信號,這三個信號都表示當前項改變了,只是信號簽名不一樣(關於信號簽名請見《PyQt(Python+Qt)學習隨筆:信號簽名(signature of the signal)是什麼?》)。其中前2個信號是表格部件自身的信號,currentChanged信號是表格部件父類QTableView的信號。
  4. 如果當前項沒有,則currentItem()方法返回None

4、當前行和列訪問方法

當前項所在的行和列,既可以通過當前項的QTableWidgetItem實例對象的行號(row()方法)和列號(column()方法)獲取,也可以直接通過QTableWidget獲取。調用語法如下:

  • int currentColumn()
  • int currentRow()
    如果部件沒有當前項,則上述兩個方法返回-1。

老猿Python,跟老猿學Python!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章