弱智bug集合

这个文章记录一下编程过程中的弱智bug,看看一年后能收集多少


------2014-03-21

这个不算bug,eclipse里面整理代码快捷键是ctrl+shift+f,但是发现时灵时不灵;一直没在意,鼠标右键点开菜单弄一样,不过今天实在被搞烦了,去查到底为什么,结果是输入法的快捷键冲突了。。搜狗输入法ctrl+shift+f是简繁转换,写代码的时候用中文写了点注释忘记换成英文就会出现。。。sigh

------2014-01-23

Long countByDungeonId(int dungeonId);
写成
Integer countByDungeonId(int dungeonId);

JPA count返回Long型。 版本1.3 不知道1.4改成如何



------2014-01-13
u.setPets(new String[]{"888","995","997"});
写成 u.setPets(new String[]{"888,995,997"}); 查了40分钟。
内容概要:本文系统阐述了Java Persistence API(JPA)的核心概念、技术架构、核心组件及实践应用,重点介绍了JPA作为Java官方定义的对象关系映射(ORM)规范,如何通过实体类、EntityManager、JPQL和persistence.xml配置文件实现Java对象与数据库表之间的映射与操作。文章详细说明了JPA解决的传统JDBC开发痛点,如代码冗余、对象映射繁琐、跨数据库兼容性差等问题,并解析了JPA与Hibernate、EclipseLink等实现框架的关系。同时提供了基于Hibernate和MySQL的完整实践案例,涵盖Maven依赖配置、实体类定义、CRUD操作实现等关键步骤,并列举了常用JPA注解及其用途。最后总结了JPA的标准化优势、开发效率提升能力及在Spring生态中的延伸应用。 适合人群:具备一定Java基础,熟悉基本数据库操作,工作1-3年的后端开发人员或正在学习ORM技术的中级开发者。 使用场景及目标:①理解JPA作为ORM规范的核心原理与组件协作机制;②掌握基于JPA+Hibernate进行数据库操作的开发流程;③为技术选型、团队培训或向Spring Data JPA过渡提供理论与实践基础。 阅读建议:此资源以理论结合实践的方式讲解JPA,建议读者在学习过程中同步搭建环境,动手实现文中示例代码,重点关注EntityManager的使用、JPQL语法特点以及注解配置规则,从而深入理解JPA的设计思想与工程价值。
### 解决方案 为了满足用户需求,即在 Python 中使用 `QTreeView` 实现单列显示、分隔内容并通过空白实现垂直方向对齐,同时构建父子层级结构的 Item,可以采用以下方法。 #### 关键技术点 1. **单列显示**:通过设置模型 (`QStandardItemModel`) 并将其应用到 `QTreeView` 上,仅保留一列作为表头[^3]。 2. **分隔内容并保持垂直对齐**:利用 HTML 格式的字符串插入 `<br>` 标签来模拟换行效果,从而在同一行中分隔两部分内容,并确保它们在垂直方向上对齐[^1]。 3. **父子层级结构**:借助 `QStandardItem` 的 `.appendRow()` 方法创建父子关系,将子项附加到父项下[^4]。 以下是详细的代码实现: ```python from PyQt5.QtWidgets import QApplication, QTreeView, QVBoxLayout, QWidget from PyQt5.QtGui import QStandardItemModel, QStandardItem class CustomTreeView(QWidget): def __init__(self): super().__init__() # 初始化 QTreeView 和布局 self.tree_view = QTreeView(self) layout = QVBoxLayout() layout.addWidget(self.tree_view) self.setLayout(layout) # 创建标准项模型 model = QStandardItemModel() # 设置单列表头 model.setHorizontalHeaderLabels(['资源']) # 单列表头名称[^3] # 应用模型到视图 self.tree_view.setModel(model) # 自动展开所有节点 self.tree_view.expandAll() # 填充数据 root_item = QStandardItem("根节点") # 创建根节点 child_1_part1 = "<b>子节点1 部分A</b>" # 子节点的第一部分内容 child_1_part2 = "子节点1 部分B 描述" # 子节点的第二部分内容 child_1_text = f"{child_1_part1}<br>{child_1_part2}" # 使用<br>标签分割内容[^1] child_1 = QStandardItem(child_1_text) # 创建子节点 child_2_part1 = "<i>子节点2 部分A</i>" child_2_part2 = "子节点2 部分B 更多详情" child_2_text = f"{child_2_part1}<br>{child_2_part2}" child_2 = QStandardItem(child_2_text) # 将子节点添加到根节点 root_item.appendRow([child_1]) root_item.appendRow([child_2]) # 将根节点添加到模型 model.invisibleRootItem().appendRow(root_item) if __name__ == "__main__": app = QApplication([]) window = CustomTreeView() window.resize(400, 300) window.show() app.exec_() ``` --- ### 代码解析 1. **单列设置** - 使用 `model.setHorizontalHeaderLabels(['资源'])` 设定只有一列的表头名称。 2. **HTML 换行实现分隔与对齐** - 对于每个子项的内容,分别定义两个部分(如 `part1` 和 `part2`),并将它们通过 `<br>` 标签连接起来形成一个多行文本。这使得即使是在单列的情况下,也能实现视觉上的分隔和垂直对齐[^1]。 3. **父子层次结构** - 利用 `root_item.appendRow([child])` 方法将子项逐层嵌套至父项之下,完成树状结构的构建[^4]。 --- ### 输出效果 运行以上代码后,将在 GUI 界面中看到一个具有单列设计的 `QTreeView` 控件: - 每个条目都由上下两部分组成,中间通过空格或换行符自然分离; - 整体呈现清晰有序的父子层级关系。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值