python rowcount_PyQt(Python+Qt)学习随笔:QTableWidget的currentItem、rowCount、columnCount等部件状态属性访问方法...
老猿將QTableWidget表格部件中反映部件當(dāng)前情況的一些方法歸類為部件狀態(tài)訪問方法,包括部件的行數(shù)、列數(shù)、當(dāng)前項、當(dāng)前行、當(dāng)前列等屬性訪問方法。
1、行數(shù)rowCount
QTableWidget的rowCount屬性保存表格部件中的行數(shù),在QTableWidget創(chuàng)建時如果沒有指定行數(shù),則缺省行數(shù)為0,QTableWidget創(chuàng)建后可以通過 setRowCount方法調(diào)整行數(shù)。
要獲取當(dāng)前表格部件中的行數(shù),可以通過rowCount()方法獲取,要設(shè)置表格部件的行數(shù),可以通過setRowCount(int rows)調(diào)整表格的行數(shù),如果參數(shù)rows小于現(xiàn)在表格中的實際行數(shù),則表格中超出參數(shù)的行數(shù)數(shù)據(jù)會丟棄,就算是后面將行數(shù)或列數(shù)恢復(fù)也不能恢復(fù)相關(guān)數(shù)據(jù)。
2、列數(shù)columnCount
columnCount屬性保存表格部件中的列數(shù),相關(guān)屬性和操作方法和rowCount類似。在QTableWidget創(chuàng)建時如果沒有指定列數(shù),則缺省列數(shù)為0,QTableWidget創(chuàng)建后可以通過 setColumnCount方法調(diào)整。
columnCount可以通過columnCount()方法獲取,通過setColumnCount(int columns)設(shè)置。
3、當(dāng)前項訪問方法
當(dāng)前項是指當(dāng)前鼠標(biāo)和鍵盤焦點所在項,在項可以進行選擇操作時,當(dāng)前項可以是選中狀態(tài),也可以是未選中狀態(tài),選中項也不一定是當(dāng)前項。與當(dāng)前項相關(guān)的方法包括:
QTableWidgetItem currentItem() :返回當(dāng)前項對應(yīng)項對象,如果沒有當(dāng)前項則返回None
setCurrentItem(QTableWidgetItem item):設(shè)置當(dāng)前項
setCurrentItem(QTableWidgetItem item, QItemSelectionModel.SelectionFlags command):設(shè)置當(dāng)前項
setCurrentCell(int row, int column):設(shè)置當(dāng)前項
setCurrentCell(int row, int column, QItemSelectionModel.SelectionFlags command):設(shè)置當(dāng)前項
注意:
后面4個方法都是設(shè)置當(dāng)前項,方法名為setCurrentItem的參數(shù)是QTableWidgetItem實例,方法名為setCurrentCell的參數(shù)是行和列,即這兩類方法依據(jù)的項定位方法不同
參數(shù)中帶command參數(shù)的,要求除了將當(dāng)前項改為參數(shù)確認(rèn)的項之外,還要求有額外的響應(yīng),具體響應(yīng)由command參數(shù)確認(rèn)。關(guān)于QItemSelectionModel.SelectionFlags 請參考《PyQt(Python+Qt)學(xué)習(xí)隨筆:Mode/View中的枚舉類QItemSelectionModel.SelectionFlag取值及含義》;
設(shè)置當(dāng)前項的方法無返回值,如果設(shè)置失敗(如指定參數(shù)項在部件中不存在)是無法直接判斷的,如果設(shè)置成功,會觸發(fā)QTableWidget部件發(fā)射信號currentItemChanged和currentCellChanged信號以及currentChanged信號,這三個信號都表示當(dāng)前項改變了,只是信號簽名不一樣(關(guān)于信號簽名請見《PyQt(Python+Qt)學(xué)習(xí)隨筆:信號簽名(signature of the signal)是什么?》)。其中前2個信號是表格部件自身的信號,currentChanged信號是表格部件父類QTableView的信號。
如果當(dāng)前項沒有,則currentItem()方法返回None
4、當(dāng)前行和列訪問方法
當(dāng)前項所在的行和列,既可以通過當(dāng)前項的QTableWidgetItem實例對象的行號(row()方法)和列號(column()方法)獲取,也可以直接通過QTableWidget獲取。調(diào)用語法如下:
int currentColumn()
int currentRow()
如果部件沒有當(dāng)前項,則上述兩個方法返回-1。
老猿Python,跟老猿學(xué)Python!
總結(jié)
以上是生活随笔為你收集整理的python rowcount_PyQt(Python+Qt)学习随笔:QTableWidget的currentItem、rowCount、columnCount等部件状态属性访问方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 揭开 gcc 编辑器的面貌
- 下一篇: python爬虫常见反爬措施_爬虫常见的