KEEP K.I.S.S.

tk's blog

感慨一下

今天继续看了点SICP的内容,有个习题有点难度就网上搜索了下,又发现了一个牛人的博客。

链接在此:http://www.blogjava.net/killme2008

不管是涉及的领域知识,还是写文章的态度,都是很值得佩服的。

他的文章列表已经52页了!!! 基本上是从 07年到现在的,不得不佩服至极。

坚持做一件事情,也是一种强大的力量。

Qt 之 Layout

直接贴 Qt 帮助里的原话吧

 

Tips for Using Layouts

When you use a layout, you do not need to pass a parent when constructing the child widgets. The layout will automatically reparent the widgets (using QWidget::setParent()) so that they are children of the widget on which the layout is installed.

Note: Widgets in a layout are children of the widget on which the layout is installed, not of the layout itself. Widgets can only have other widgets as parent, not layouts.

You can nest layouts using addLayout() on a layout; the inner layout then becomes a child of the layout it is inserted into.

QLayout 会负责将每个在 QLayout 中布局的 QWidget 对象 和 QLayout 本身所在的父 QWidget 对象进行“连接”,也就是将这些布局对象转变为本身坐在的父 QWidget 对象的孩子,由它来负责各个布局子对象的生存期管理。 容易错误以为 QLayout 会是这些布局对象的父母,但是事实上它们之间应该是兄弟关系,QLayout 只负责将这些布局对象跟其父母进行连接而已。

KDE下Qt程序字体问题

 

弄了几天的问题,终于算是部分解决了。

问题是这样的,在KDE下,并不是所有程序的字体都和KDE设置的是一样的,就连基于Qt的程序也是如此。之前下载了 Qt SDK 1.1.3,自带的Qt Creator 的字体看上去太蛋疼了,模糊,又不好看,怎么设置也没办法弄。

后来在网上找了很多方法,qtconfig 也试过,没有效果,有人质疑 Qt 程序的字体设置和 KDE 默认的冲突,但是也没有找到解决方法。

没办法,最后找到了一个设置微软雅黑字体的办法来试试,结果还是不错的。

在用户目录下有个字体设置文件, .fonts.conf ,就是修改这个文件来修改全局字体。如下所附带的就是一个用于微软雅黑显示所用的代码。其实不知道还有没有更好的办法,因为这样设置后Chrome里的字体也全部微软雅黑了。。。。。。 等学会了 这个文件的原理就能找到好方法了吧。。

 

================= 9/22 更新 ==============

新配置文件,完全去除windows宋体,建议不使用该字体。新配置文件为 /etc/fonts/local.conf 没有可以新建。

 

<?xml version='1.0'?>
<fontconfig>
 <!--
# 设置 serif 衬线字体的读取顺序
-->
 <alias>
  <family>serif</family>
  <prefer>
        <family>Bitstream Vera Serif</family>
   <family>Microsoft YaHei</family>
  </prefer>
 </alias>
 <!--
# 设置 sans-serif 无衬线字体的读取顺序
-->
 <alias>
  <family>sans-serif</family>
  <prefer>
        <family>Bitstream Vera Sans</family>
   <family>Microsoft YaHei</family>
  </prefer>
 </alias>
 <!--
# 设置 monospace 等宽字体的读取顺序
-->
 <alias>
  <family>monospace</family>
  <prefer>
          <family>Bitstream Vera Sans Mono</family>
      <family>Microsoft YaHei</family>
  </prefer>
 </alias>
 <!--
# 全局字体的设置
-->
 <match target="font">
  <test compare="contains" name="family">
   <string>Tahoma</string>
   <string>verdana</string>
   <string>Arial</string>
   <string>Times New Roman</string>
  </test>
  <edit name="globaladvance">
   <bool>false</bool>
  </edit>
  <edit name="spacing">
   <int>0</int>
  </edit>
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="autohint">
   <bool>false</bool>
  </edit>
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="hintstyle">
   <const>hintfull</const>
  </edit>
 </match>
 <!--
# 单独设置微软雅黑字体的显示
-->
 <match target="font">
<test name="family" compare="contains">
<string>Microsoft YaHei</string>
<string>微软雅黑</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintfull</const>
</edit>
</match>
<!--
# 单独设置 Bitstream Vera Sans 字体的显示
-->
<match target="font">
<test name="family" compare="contains">
<string>Bitstream Vera Sans</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintslight</const>
</edit>
</match>
<!--
# 单独设置 Bitstream Vera Serif 字体的显示
-->
<match target="font">
<test name="family" compare="contains">
<string>Bitstream Vera Serif</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintslight</const>
</edit>
</match>

<!--
# 单独设置 Bitstream Vera Sans Mono 字体的显示
-->
<match target="font">
<test name="family" compare="contains">
<string>Bitstream Vera Sans Mono</string>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit name="autohint" mode="assign">
<bool>false</bool>
</edit>
<edit name="antialias" mode="assign">
<bool>true</bool>
</edit>
<edit name="hintstyle" mode="assign" >
<const>hintslight</const>
</edit>
</match>
</fontconfig>

使用 Github 中

Git 是个好东西,至少给我的感觉是超级棒的。

最近刚看完了『Unix编程艺术』,感触良多,说实话,这本书值得所有程序猿去看的,虽然讲的是Unix哲学,其实我感觉,对于Windows下的程序猿来讲,这本书里讲了太多值得他们去学习的东西。

最近也开始学习Git了,也在自己的Github帐号上建了几个仓库。恰巧前两天弄出个脚本,用来KDE环境下命令行删除文件到回收站的,比起恐怖的RM命令来说,是个很好的用品。于是就建了一个shell 脚本的仓库,给move2trash脚本上添加了点注释,就提交上来了。不过话说,我的英文真的好烂好烂。。。。。。。

给个链接:

https://github.com/tisyang/shell-script/blob/master/kde-script/move2trash

 

目前来说,Git还是不大熟悉,继续努力吧。

KDE 命令行删除文件到回收站脚本

 

#!/bin/bash
for fileName in "$@"
do
    if [ ! -e $fileName ];then
        echo "****  $fileName  NOT existed!"
        exit
    fi
    kioclient move "$fileName" trash:/ 2> /dev/null && echo "----  trashed:   $fileName"
done

经过测试,暂时没有什么问题,我的环境是 Debian 6.0 KDE。 这个脚本仅限KDE环境。
可以把这个脚本丢到 /usr/local/bin/ 下,作为常用命令使用,不要忘了赋予执行权限。