表格设计
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)#设置只能选中单元格
self.TableWidget.setStyleSheet("QTableWidget::item:selected { background-color: rgb(111,111,111) }")#设置选中颜色
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):
"""更新内容"""
pass
class UpdateData(QThread):
"""更新数据类"""
update_date = pyqtSignal(str) # pyqt5 支持python3的str,没有Qstring
def run(self):
cnt = 0
while True:
cnt += 1
self.update_date.emit(str(cnt)) # 发射信号
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_())
网友评论