表格設(shè)計
self.TableWidget.verticalHeader().setVisible(False)#行號消失
self.TableWidget.setEditTriggers(QTableView.NoEditTriggers)#不可編輯
self.TableWidget.setShowGrid(False)#不顯示格子之間的豎分界線
self.TableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)#自適應寬度
self.TableWidget.horizontalHeader().setVisible(False)#列標簽消失
self.TableWidget.setSelectionBehavior(QAbstractItemView.SelectItems)#設(shè)置只能選中單元格
self.TableWidget.setStyleSheet("QTableWidget::item:selected { background-color: rgb(111,111,111) }")#設(shè)置選中顏色
self.TableWidget.setItemDelegate(new.NoFocusDelegate())#取消邊框虛線
self.TableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)#按行選中
self.TableWidget.resizeColumnsToContents()#行自適應高度
self.TableWidget.resizeRowsToContents()#列自適應寬度
self.TableWidget.verticalHeader(connect(self.VerSectionClicked))#表頭單擊信號
self.TableWidget.horizontalHeader(connect(self.HorSectionClicked))#表頭單擊信號
pyqtslot
self.TableWidget.setObjectName("TableWidget")
QtCore.QMetaObject.connectSlotsByName(self)
@pyqtSlot(int, int, int, int)
def on_TableWidget_currentCellChanged(self, currentRow, currentColumn, previousRow, previousColumn): ...
@pyqtSlot(int, int)
def on_TableWidget_cellClicked(self, row, column): ...
多線程
class MainUi(QWidget):
def __init__(self):
super(MainUi, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("事件管理")
self.resize(width, height)
def update_item_data(self):
"""更新內(nèi)容"""
pass
class UpdateData(QThread):
"""更新數(shù)據(jù)類"""
update_date = pyqtSignal(str) # pyqt5 支持python3的str伍掀,沒有Qstring
def run(self):
cnt = 0
while True:
cnt += 1
self.update_date.emit(str(cnt)) # 發(fā)射信號
time.sleep(1)
if __name__ == '__main__':
app = QApplication(sys.argv)
gui = MainUi()
# 啟動更新線程
update_data_thread = UpdateData()
update_data_thread.update_date.connect(gui.update_item_data) # 鏈接信號
update_data_thread.start()
gui.show()
sys.exit(app.exec_())