首页 / 操作系统 / Linux / 浅谈Linux 下的中文程序开发
现在越来越多的华人开始用 Linux 了.也越来越多的华人开始写我门自己的 Linux 下面的应用程序了. 开发我门自己的程序,中文当然是一个必不可少的东西了. 这里就来说说 Linux 下面的中文程序的开发. 小弟才疏学浅,只是因为看到网络上面这方面的文章不是很多很全面.所以动手写了这些东西.如果有错误,还望大家多多包含,多多指正. QT QT 现在被越来越多的人所喜爱.也有了越来越多的人选择 QT 作为开发Xwindow 下面 GUI 环境的语言. 在 Linux 中,绚丽的 KDE 桌面环境就是用 QT 开发出来的. 现在来看看如何在 QT 下面处理中文. 本文中全部在 QT 3 的环境下运作.如果您用的是比较旧的 QT 版本, 请注意: Tips: 如果您的 Linux 系统中找不到 findtr3 那么请尝试找 findtr2 或者 findtr Tips: 如果您的 Linux 系统中找不到 msg2qm2 那么请尝试找 msg2qm Tips: 可以用 which findtr3 或者 whereis msg2qm2 来寻找您的系统 Tips: 如果您希望在自己的计算机中编译本文中的范例, 您需要安装 g++, qt, qt-devel, make 这些 套件. 下面我们来看一个简单的 QT 程序: 代码: /* chinese.h */ #include #include #include #include class Chinese: public QWidget { Q_OBJECT public: Chinese(); private: QLabel *label; QLineEdit *input; private slots: void display(); }; 这里我们简单的定义了一个基于 QWidget 的 class, 命名为 Chinese 然后我们定义了一个 Label *label 和一个 LineEdit input 并且定义一个 代码: void slot display() /* chinese.cpp */ #include "chinese.moc" #include Chinese::Chinese() { resize(200,100); label=new QLabel( "Input Line:", this); label->setGeometry(10,10,90,30); input=new QLineEdit(this); input->setGeometry(10, 40, 180, 30); input->setFocus(); connect(input, SIGNAL(returnPressed()), this, SLOT(display())); } void Chinese::display() { QCString string; string=input->text(); cout< } 在 .cpp 文件中. Chinese::Chinese() 中,我们只做了四件最简单的事情 1. 显示一个叫做 Input Line: 的 label 在 10,10 这个位置上. 大小为 90 30. 然后显示一个可以用来输入的 LineEdit 在 10, 40, 大小为 180, 30. 然后告诉程序,当程序打开的时侯,将 focus 用 setFocus() 放在 input ( QLineEdit )上面.也就是说,程序一打开,我们打 keyboard 就可以直接输入到 input 这个 QLineEdit 中. 然后我们告诉程序,当在 input 中接收到 Enter 键的时侯,去呼叫 display() 这个 slot Chinese::display() 中.我们有三个动作. 1. 定义一个 QCString 用作 QT 与 C++ 之间的沟通. string=input-text() 把我们输入在 input 中的 string 抓下来,放到 string 中.然后用 cout 把 string 显示在您的 X 终端模拟中. (rxvt, qterm, xter Konsole 之类的程序)
收藏该网址