看到评论里面有朋友抱怨以前文章里面的例子都是 for Windows 的,没有 for Linux 或者 for Mac 的。那么今天就来说说跨平台的问题吧!所谓跨平台,其实有两种含义,一是跨硬件平台,一是跨软件平台。对于硬件平台,很多时候我们都会不自觉的忽略掉,因为硬件差异虽然很大,但是我们能够接触到的却很少。
今天来说的是自定义 model 中最复杂的例子。这个例子同样也是出自 C++ GUI Programming with Qt 4, 2nd Edition 这本书。这个例子是将布尔表达式分析成一棵树。这个分析过程在离散数学中经常遇到,特别是复杂的布尔表达式,类似的分析可以比较方便的进行表达式化简、求值等一系列的计算。同样,这个技术也可以很方便的分析一个表达式是不是一个正确的布尔表达式。
前面的例子已经比较清楚的给出了自定义 model 的方法,就是要覆盖我们所需要的那几个函数就可以了。但是,前面的例子仅仅是简单的展示数据,也就是说数据时只读的。那么,如何能做到读写数据呢?那就要来看进来的例子了。这个例子也是来自 C++GUI Programming with Qt 4, 2nd Edition这本书的。还是先来看代码吧:citymodel.