2013年1月23日
摘要: 一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:问题一:使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标 阅读全文
posted @ 2013-01-23 17:18 snlDream 阅读(184) 评论(0) 推荐(0)
  2013年1月17日
摘要: Model-View-Controller(MVC), 是从Smalltalk发展而来的一种设计模式,常被用于构建用户界面。它强制性的使应用程序的输入、处理和输出分开。在Qt中引入了一个MVC的变体---model/view结构。这个结构依然是把数据存储与数据表示进行了分离,它与MVC都基于同样的思想,但它更简单一些。这种分离使得在几个不同的view上显示同一个数据成为可能,也可以重新实现新的view,而不必改变底层的数据结构。为了更灵活的对用户输入进行处理,引入了delegate这个概念。它的好处是,数据项的渲染与编程可以进行定制。其具体工作机制如下图:从上图可看出,Model直接读取数据, 阅读全文
posted @ 2013-01-17 20:45 snlDream 阅读(170) 评论(0) 推荐(0)
摘要: 属性:样式: QComboBox* m_combox; m_combox = new QComboBox(this); QStringList test = QStringList() <<"111" <<"222"; mp_combox->addItems(test); mp_combox->show();经验之谈:http://blog.csdn.net/c_arm/article/details/6704680QComboBox插件是一个集按钮和下拉菜单于一体的插件。QComboBox在占用最小屏幕空间的情况下为 阅读全文
posted @ 2013-01-17 08:59 snlDream 阅读(2733) 评论(0) 推荐(0)
  2012年12月3日
摘要: elect在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而 阅读全文
posted @ 2012-12-03 13:06 snlDream 阅读(221) 评论(0) 推荐(0)
  2012年11月30日
摘要: http://blog.csdn.net/lutx/article/details/7353957近来用Qt编写一段多线程的TcpSocket通信程序,被其中Qt中报的几个warning搞晕了,一会儿是说“Cannot create children for a parent that is in a different thread”,有时候又是“QSocketNotifier: socket notifiers cannot be enabled from another thread”,还经常又Assert failure:Cannot send events toobjects own 阅读全文
posted @ 2012-11-30 13:05 snlDream 阅读(357) 评论(0) 推荐(0)
摘要: POINT 1:QThread类的实例与普通类的实例没什么不同,只是运行着的run()函数会不同例1:class MThread :public QThread { public: MThread(); ~MThread(); void run(); void foo(); ... };class MDialog :public QDialog { ... MThread *mythread; }; MDialog::MDialog() { mythread = new MThread; ... }需要注意的是,在QT中,QThread对象的实例mythread是属于创建它... 阅读全文
posted @ 2012-11-30 10:27 snlDream 阅读(208) 评论(0) 推荐(0)
  2012年11月8日
摘要: 转载地址:http://i.cn.yahoo.com/shiyufeng/blog/p_40/原文作者:LionUbuntu 8.04/8.10 设置笔记本电脑双显示器目录:1、设置显示分辨率及 xrandr 介绍2、GNOME下切换双屏的方法3、关于双屏下 GNOME面板/ wine / 阿里旺旺的一些问题及解决正文:1. 设置显示分辨率及 xrandr 介绍X Windows 中有一个显示分辨率的概念,在默认情况下,这个显示分辨率为 max*max ,max等于你的所有连接上的显示器中最大分辨率中的最大值。例如我的笔记本液晶屏最大分辨率为 1024*768,外接显示器最大分辨率为 1280 阅读全文
posted @ 2012-11-08 22:13 snlDream 阅读(6323) 评论(0) 推荐(0)