Skip to content

Commit

Permalink
fix bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
winland0704 committed Dec 29, 2023
1 parent d223eb8 commit b2c95b1
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 9 deletions.
4 changes: 3 additions & 1 deletion ch00-01.htm
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
感谢 <b>_aXing ([email protected])</b>&nbsp;纠正 2.3.4 节&nbsp;
Release&nbsp;发行版程序的路径。<br>
<br>
感谢 <b>小王子(ziyouxiaowangzi)</b> 纠正 8.3.2 节 QTreeWidgetItem 构造函数内容的缺失。<br>
感谢 <b>小王子(ziyouxiaowangzi)</b> 纠正 8.3.2 节 QTreeWidgetItem 构造函数内容的缺失,9.4
节关联容器:QHash、QMultiHash和QSet ,9.5 节数据容器的迭代器,10.3 节堆栈控件和标签页控件,11.2 节QDialog
多窗口使用 等章节内容错误。<br>
<br>
<div class="os2"> 预留词 </div>
<br>
Expand Down
10 changes: 5 additions & 5 deletions ch09-04.htm
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
<br>
QHash 是基于哈希表实现的字典结构,存储 key-value
数据对。哈希表可以将任意长度的数据根据特定算法计算固定长度的“精简版”数值,就是数据条目的哈希值。简要来说,对于 key-value 数据对,我们根据
key 的数值计算得到哈希值作为数据存储空间的序号,在该序号位置保存 value,那么我们就可以快速地根据 key 访问到 value
数值。实际中的哈希表结构更复杂,因为要考虑哈希值碰撞的问题,本节就不讨论了。上一节 QMap 利用红黑树实现,读取一个元素的平均效率是 O(logN)
,N 是元素总数。而通过 QHash 读取一个元素,只需要计算 key 对应的哈希值,不需要遍历查找树形结构或数组结构,哈希表的访问效率平均为 O(1)
<br>
key 的数值计算得到哈希值作为数据存储空间的序号,在该序号位置保存 key-value数据对,那么我们就可以快速地根据 key 计算序号访问到
value 数值。实际中的哈希表结构更复杂,因为要考虑哈希值碰撞的问题,本节就不讨论了。上一节 QMap 利用红黑树实现,读取一个元素的平均效率是
O(logN) ,N 是元素总数。而通过 QHash 读取一个元素,只需要计算 key
对应的哈希值,不需要遍历查找树形结构或数组结构,哈希表的访问效率平均为 O(1) <br>
QHash
的优点是通常情况下访问元素效率极高,但是也有缺点,元素排列是无序的,元素排列不按照数值大小或字典序,是按照哈希算法计算的值进行排列,这些哈希值都是杂乱无章的数
值。如果需要有序的数据结构,那么 QMap 就更实用。<br>
Expand Down Expand Up @@ -2038,7 +2038,7 @@
包含关系 contains:<br>
<div class="code">bool&nbsp;&nbsp; &nbsp;contains(const QSet&lt;T&gt; &amp; other) const </div>

计算 *this 对象是否包含 other 集合对象中的所有元素,如果包含所有 other 内部元素,那么返回 ture,否则返回 false。<br>举例如下:<br>
计算 *this 对象是否包含 other 集合对象中的所有元素,如果包含所有 other 内部元素,那么返回 true,否则返回 false。<br>举例如下:<br>
<div class="code">&nbsp;&nbsp;&nbsp; QSet&lt;int&gt; s1{1,2,3};<br>&nbsp;&nbsp;&nbsp; QSet&lt;int&gt; s2{3,4,5};<br>&nbsp;&nbsp;&nbsp; s1.unite( s2 );<br>&nbsp;&nbsp;&nbsp; qDebug()&lt;&lt;s1;<br><br>&nbsp;&nbsp;&nbsp; QSet&lt;int&gt; s3{1,2,3};<br>&nbsp;&nbsp;&nbsp; s3.intersect( s2 );<br>&nbsp;&nbsp;&nbsp; qDebug()&lt;&lt;s3;<br><br>&nbsp;&nbsp;&nbsp; QSet&lt;int&gt; s4{1,2,3};<br>&nbsp;&nbsp;&nbsp; s4.subtract( s2 );<br>&nbsp;&nbsp;&nbsp; qDebug()&lt;&lt;s4;<br><br>&nbsp;&nbsp;&nbsp; QSet&lt;int&gt; s5{1,2,3,4,5};<br>&nbsp;&nbsp;&nbsp; qDebug()&lt;&lt;s5.contains( s2 ); </div>
其输出如下:<br>
<div class="output">QSet(1, 4, 5, 2, 3)<br>QSet(3)<br>QSet(1, 2)<br>true </div>
Expand Down
2 changes: 1 addition & 1 deletion ch09-05.htm
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
<td> 移动到前一个元素,注意该运算符不检查越界,越界就是野指针</td>
</tr>
<tr>
<td>i += n</td>
<td>i -= n</td>
<td> 移动到前面第 n 个元素,注意该运算符不检查越界,越界就是野指针</td>
</tr>
<tr class="d1">
Expand Down
2 changes: 1 addition & 1 deletion ch10-03.htm
Original file line number Diff line number Diff line change
Expand Up @@ -821,7 +821,7 @@
如果标题栏的标签按钮有 2 个或以上,那么 tabBarAutoHide 属性没有用,这个 tabBarAutoHide 属性与单词字面意义不一样,功能比较鸡肋。<br><br>④标题栏其他设置<br>标题栏可以设置拖动标签按钮移动各个标签页的显示顺序(内部子页面序号不会变,只是显示位置不同了):<br>
<div class="code">bool&nbsp;&nbsp; &nbsp;isMovable() const<br>void&nbsp;&nbsp;&nbsp; setMovable(bool movable)</div>
<br>标题栏可以设置拖动标签页是否可以关闭:<br>
<div class="code">bool&nbsp;&nbsp; &nbsp;tabsClosable() const<br>void&nbsp;&nbsp;&nbsp; setTabsClosable(bool closeable)</div>
<div class="code">bool&nbsp;&nbsp; &nbsp;tabsClosable() const<br>void&nbsp;&nbsp;&nbsp; setTabsClosable(bool closable)</div>
默认标签页是不关闭的,总是显示所有子标签;如果设置了标签页可以关闭,那么每个标签按钮文本旁边有 X 号,如果用户点击 X 号,那么触发信号:<br>
<div class="code">void QTabBar::​tabCloseRequested(int index)&nbsp;&nbsp; //触发信号,提示用户点击X号想关闭标签页</div>

Expand Down
2 changes: 1 addition & 1 deletion ch11-02.htm
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
<center> <img src="images/ch11/ch11-02-03.png" alt="new1"></center>
上图左边一栏选择“Qt”,中间一栏选择“Qt设计师界面类”,点击“Choose...”按钮,进入界面类模板选择:<br>
<center> <img src="images/ch11/ch11-02-04.png" alt="new2"></center>
在中间一栏上面选择“Dialog wiithout Buttons”模板,点击“下一步”按钮,进入类名的编辑:<br>
在中间一栏上面选择“Dialog without Buttons”模板,点击“下一步”按钮,进入类名的编辑:<br>
<center> <img src="images/ch11/ch11-02-05.png" alt="new3"></center>
我们将类名修改为 <b>ResizeImageDialog</b>,点击“下一步”按钮,进入项目管理界面:<br>
<center> <img src="images/ch11/ch11-02-06.png" alt="new4"></center>
Expand Down

0 comments on commit b2c95b1

Please sign in to comment.