haulm 发表于 2008-1-29 14:51:36

关于MagicLinux3.0项目的一些大胆设想,编译pyQt4

大家也知道,最近Jagen提出建设MagicLinux3.0项目以及发表文章要让大多数Linux爱好者掌握Linux开发编译原理破除Linux开发困难的心态,目的也只有一个,把MagicLinux建设成一个真正属于大家的实用系统。

费话少说,和Jagen曾讨论过MGC3的建设,其中我再次提到过服务器组件,刚开始Jagen也表示反对,但是讨论着讨论着突然就有了共同点了,那就是系统的Web应用和系统应用应该相结合,最终实现各PC之间点对点的交流,于是经过MGC交流群的讨论,从lighttpd+php+sqlite这种仿IIS建设微型Web开发服务器的想法转变成lighttpd+python+sqlite的Web架设想法,并达成共识要建设一个Magic Config System(MCS)系统来接手整个MGC3.0的系统管理和资料共享。很自然的,从这个构架想法和KDE4成为MGC3.0的桌面的决定相结合,那么lighttpd+python+qt4+pyqt4+sqlite成为我自己机器安装MGC2.1后的标配。

pyqt4的安装过程如下:

首先安装python2.5,由于MGC2.1的MI不能在python2.5下正常工作,所以不进行升级安装,而是安装在/opt/python2.5下

第二步安装Qt4,MGC的APT源已经有Qt4的完整开发安装包

第三步安装独立的SIP4.7.3,MGC自带的SIP自然是为python2.4服务的,注意一下参数

ln -sv /opt/python2.5/bin/python /usr/bin/python25

tar -jxvf sip*

cd sip*

python25 ./configure.py;make;make install

最后安装pyQt4,进入源码目录,注意参数

python25 ./configure.py -q /usr/lib/qt4/bin/qmake -r;make;make install

PyQt4 编程简介
作者:
柴树杉[翻译] ([email protected])
日期:
2007-12-22 于武汉
注解:
该文档根据"Introduction to PyQt4"翻译,依照创作公用约定发布。
开始
创建一个 PyQt4 一般可以通过很少的步骤完成。通常的方法是用 Qt 提供的QtDesigner工具创建界面。使用QtDesigner,可以方便地创建复杂的GUI界面。然后,可以在窗口上创建部件, 添加名字等。创建一个PyQt4一般需要:
使用QtDesigner创建GUI界面
在属性编辑器中修改部件的名字
使用pyuic4工具生成一个python类
通过GUI对应类来运行程序
通过设置自己的slots来扩展功能
当使用窗口部件的时候,可以从 "PyQt's Classes"查询。Qt采用易于理解的方式来命名函数,例如:"setText"。
教程列表
简易的文本编辑器 - PyQt4第一个程序
增加文本编辑器的功能 - 增加更多的功能
QYolk I - PyQt4中的列表部件 - 怎么使用PyQt4中的列表部件
QYolk II - 容器部件 - 怎么使用Tab Widget
PyQt4文本编辑器 - 最终版 - PyQt4的一些高级特性
QYolk III - 升级包列表 - 新的特性
QScintilla2和PyQt4 - 给PyQt4增加部件
更多 ...
下载教程代码 (缺少的部分请从原网站下载)
简介
打开QtDesigner,会出现"Hello... Close Button"对话框,让我们选择类型类型:



我们选择widget类型,然后在窗口中添加一个PushButton按纽:



通过鼠标右键来修改pushButton显示的内容:



当窗口建好之后,我们可以QtDesigner来编辑一些Qt预定义的信号/槽。这里我们使用的是"close()"槽函数 来关闭程序。首先切换到信号/槽边界模式:



用鼠标移到pushButton区域,然后拖动:



弹出一个信号/槽选择框:



信号选择clicked(),槽选择close()。将窗口保存为test.ui文件。切换到test.ui所在的目录,然后输入以下命令:
pyuic4 test.ui > test_ui.py

下一步是创建一个test.py文件:
import sys
from PyQt4 import QtCore, QtGui

from test_ui import Ui_Form


class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
      QtGui.QWidget.__init__(self, parent)
      self.ui = Ui_Form()
      self.ui.setupUi(self)


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    myapp = MyForm()
    myapp.show()
    sys.exit(app.exec_())

运行test.py:
python test.py

现在应该出现响应的窗口,当你点击按钮的时候退出程序。



提示

Ui_Form是用pyuic4工具从"Form"窗口生成的对应python类的名字。你可以在QtDesigner自己喜欢的名字 一个类的名字。

[ 本帖最后由 haulm 于 2008-1-29 15:08 编辑 ]

SCerZZ 发表于 2008-1-29 15:08:21

支持有pyqt4
开始学的就是qt4

zy_sunshine 发表于 2010-1-9 22:47:50

python很好,很强大。像个万能胶。

thicket 发表于 2010-1-15 23:17:37

那个时候不明白,现在在乍web开发,所以现在明白了!呵呵!

haulm 发表于 2010-7-2 09:38:28

lighttpd+python+sqlite 可能会演变成 nginx+php+mongodb ,对于 Web 开发的架构理解都一直在变化,新技术一直在不断演化,系统中的 Web 程序迟早大行其道。
页: [1]
查看完整版本: 关于MagicLinux3.0项目的一些大胆设想,编译pyQt4