PyQt模型/视图编程:便捷项小部件与自定义模型实现
1. 使用便捷项小部件
在处理船舶数据时,移除船舶的操作相对添加船舶更为简便。以下是移除船舶的代码示例:
def removeShip(self): ship = self.currentTableShip() if ship is None: return if QMessageBox.question(self, "Ships - Remove", QString("Remove %1 of %2/%3?").arg(ship.name) \ .arg(ship.owner).arg(ship.country), QMessageBox.Yes|QMessageBox.No) == QMessageBox.No: return self.ships.removeShip(ship) self.populateList() self.populateTree() self.populateTable()操作流程如下:
1. 调用currentTableShip()方法获取当前船舶。
2. 弹出消息框询问用户是否确认移除该船舶。
3. 如果用户点击“是”,则从ShipContainer中移除该船舶,