eric4 pyqt开发客户端神速-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1235551
  • 博文数量: 76
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 2689
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 12:07
个人简介

樽中酒不空

文章分类

全部博文(76)

文章存档

2020年(4)

2019年(1)

2017年(2)

2016年(2)

2015年(7)

2014年(11)

2013年(13)

2012年(18)

2011年(2)

2010年(16)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: python/ruby

2013-08-09 16:05:28


使用详见参考:
当前版本:

python 2.7.5
pyqt:  pyqt4-4.10.2-gpl-py2.7-qt4.8.4-x32
eric:    eric4-4.5.13 

 mfc换成qt开发效率已经提高了不少,用python写部分代码,又有提高。
 最最关键,
eric4的速度远超eclipse, qtcreator。

365im客户端决定采用pyqt,以前的代码推翻重写。
 

担心原作者把文章删掉,这里全文复制:

eric4在windows下的安装
2008年6月8日
转载请注明作者runningon

在linux下,可以apt-get的就直接apt-get,不可以的去凯发k8官网下载客户端中心官网下载后解压运行就ok。因为大部分情况下eric4所依赖的包linux默认都会装。保险起见,请检查是否安装了python,qt4,和pyqt4。
本文重点介绍eric4在windows下的安装与配置。eric4在linux下的配置与windows下相同。

在windows下会麻烦一些。步骤是:
1安装python与pyqt4
2安装eric4
3第一次运行eric4时会提示进行配置
4修改一个bug

以下是详细说明:

1. 安装python与pyqt4,不用单独安装qt。python推荐安装2.5.x版。如果系统之前已经有qt了,pyqt与qt的版本号前两位最好一样,比如pyqt4.4.2与qt4.4.1是关系不大的,但pyqt4.4.x与qt4.3.x可能就会有问题。
   python下载地址:
   pyqt下载地址:
   ps: pyqt自带的example相当赞,推荐看看。
2. eric下载解压后有个install.py,运行python install.py即可。在windows下,要求qtcore4.dll所在的文件夹包含在环境变量path中,不然安装时会提示找不到 qtcore4.dll。在pyqt安装时,默认会自动设定好环境变量。
   安装完毕后,直接双击eric4.pyw或eric4.bat都可以运行eric4。不同之处在于后者会打开一个dos黑窗口,不会影响性能,最多影响心情。
3. 安装后第一次运行eric4会提示进行配置。推荐把各配置项都看看,自动补全与智能感知的功能默认都没有打开,而且比较弱,导入.api文件后可以强化。 打开功能并强化的方法:单击菜单settings->preferences后弹出对话框,选择左侧的editor分支下的 autocompletion,全勾上,source选择"from document and api files"。然后再在左侧选择editor分支下的apis,勾上复选框,语言选择python,单击按钮add from installed apis,把你需要的.api文件都加进去,最后点击compile apis,要花几分钟,再点确定就ok。现在你的autocomplete的功能就很牛了,虽然仍不完美。可以把自己的程序生成.api文件并添加。生成 方法是在project->source documentation->generate api file.
4. 如果要用到qtdesigner(界面设计器),要改个脚本。打开pyqt4/bin/pyuic4.bat,会发现里面执行的是c: /python2.5/python.exe,但我的python不是装在那,后面参数里的pyuic.py所在的路径也不对,改为正确的路径就ok。比 如我的pyuic4.bat就是:
   @python "d:/program files/python2.5/lib/site-packages/pyqt4/uic/pyuic.py" %1 %2 %3 %4 %5 %6 %7 %8 %9

已知bug:
1.有时会提示一些错误,一般是eric4的代码疏忽了一些变量值为none的情况。点确定就行,不影响使用。
2.一些翻译错误,比如斜体翻译成了意大利体。

一些注意事项:
1.取消多行注释的快捷键ctrl-alt-m与千千静听的全局快捷键冲突,可以在settings->keyboard shortcuts中更改。
2.在工程中新建代码文件的办法:新建一个文本文件后写入代码,保存为.py文件,然后手动加入到工程中。很土?也许吧。

在eric4下用pyqt4编写python的图形界面程序
2008-06-08 15:36
在eric4下用pyqt4编写python的图形界面程序

2008年6月8日

转载请注明作者runningon

  本文是pyqt4的入门教程。网上能搜到其它教程,但我觉得讲得不是很清楚,希望这篇文章对入门者更加有帮助。

  先介绍一下pyqt4。qt4图形库一经发布就好评不断,它在python下的绑定pyqt4更是让我眼前一亮,不但漂亮,而且开发程序非常方便。

在我看来,pyqt4最大的改进之一是它不再拘泥与各种布局控件了,也就是说,现在写图形界面程序,和vb一样可以直接拖控件到窗口上并随便改变大小和位置了,不再像以前那样要先放上布局控件,再在布局控件里放其它控件。

对pyqt4的介绍就限于此,我也不准备把它与其它python图形库进行比较了,因为经验表明这些东西的比较,特别是qt与gtk的比较总是会引起不必要的争吵。

ide我使用eric4。eric4本身是用pyqt4写的,在使用eric4时就能体会到用pyqt4能写出多棒的图形界面程序。eric4的详细介绍与安装请见我的其它文章。

操作系统是windows,在linux下的操作完全一样。

寒喧结束,进入正题。假设我们要用python写一个图形界面程序,一个对话框,里面两个button一个label。点击其中一个button能改变label的内容,点击另一个button就退出。

1. 新建工程。

打开eric4,选择菜单project->new新建一个工程,名字我们取为hellopyqt,填好各项并选择工程所在文件夹之后点ok,一个新的不含任何文件的工程就建好了。

2. 新建对话框。

在左侧的projectviewer中切换到forms选项卡(左数第二个),右键点空白位置,选new form,在弹出的对话框中选择form类型为dialog,然后会问你保存到哪。我设定为保存为dlghello.ui文件。点ok之后就会新建这个文件并自动打开qtdesigner。 

3. 设计界面。

先修改主对话框的属性。选中对话框,在右侧的属性编辑器中就可以查看/修改对话框的属性。将windowtitle改为"hello, pyqt",将objectname改为"dlghello”,前者是对话框标题,后者在以后生成代码时有用,不建议使用默认值。

我们拖动一个label(在displaywidgets分类中)到对话框中,将属性text改为"hello, pyqt",objectname改为lblhello。

再拖动两个pushbutton(在buttons分类中)到对话框,分别将属性text改为"你好"和"退出"。将属性objectname分别改为btnhello和btnexit。

界面大概是这个样子:


4. 处理事件。

在pyqt4下,事件处理方面的术语为“信号”和“槽”,即signal和slot。事件对应信号signal,而事件的处理函数则为slot槽。

pyqt4有一些预定义的slot,我们可以直接用,比如“退出”按钮的slot,其实就是关闭对话框,这个slot已经在pyqt4中有定义了。对于这样的slot,我们不用单独写代码,在qtdesigner中就可以完成。而对于“你好”按钮,我们需要自己写代码。对于这样的slot,我们在qtdesigner中不做任何处理,甚至不做定义。

那么在这个例子中,在qtdesigner里我们只处理退出按钮的单击事件。

单击“编辑信号/槽”按钮进入信号/槽编辑模式。点中退出按钮并拖动,会出现一个像是电路图中的接地图示一样的东西,如下:

 



松开鼠标,就会弹出“配置连接”对话框。勾上“显示从qwidget继承的信号和槽”,左侧选择clicked(),右侧选择close(),点确定,就ok了。

 

如果要继续调整对话框外观,点击“编辑窗口部件”按钮返回窗口编辑模式。

5. 生成界面代码

保存之后关闭qtdesigner,会发现eric4的projectviewer的forms选项卡中已经多出dlghello.ui了。右击它选择compile form,就能生成ui_dlghello.py文件,并自动加入到工程中。在sources选项卡中可以看到。

双击ui_dlghello.py可以看它的内容,其实是生成了一个ui_dlghello类。ui_dlghello.py是可以单独运行的,在eric4中直接按f2可以运行,看看初步的效果。发现单击退出按钮果然能直接退出程序。

不建议手动修改ui_dlghello.py,因为每次改动界面并生成代码后会将手动进行的修改给覆盖掉。

6. 添加额外的代码。

“你好”按钮的单击处理代码还需要手写。

在pyqt4中,界面代码与事件代码是分开的,这一点很赞,这样每次改界面就不会影响到事件处理的代码了。而wxpython这一点就做得不好。

事件处理要新建一个类并继承dlghello类,然后在这个新类里写事件处理函数。新建类的工作可以交给eric4来完成。右键点dlghello.ui,选择generate dialog code,在弹出的对话框中设定classname为dlghello,同时,在这个对话框中可以选择我们感兴趣的事件,eric4会一并生成事件处理函数的定义。如下图:

点确定之后,dlghello.py就生成了。打开这个文件,“你好”按钮的事件被定义为:

    @pyqtsignature("")

    def on_btnhello_clicked(self):

        """

       slot documentation goes here.

        """

        # todo: not implemented yet

        raise notimplementederror

注意这个@pyqtsignature("")自动处理了下面定义的槽slot(事件处理函数)与相对应的信号signal(事件)之间的关联,这里是指,单击btnhello按钮,就会自动执行这个函数。slot的命名规则就是”on_对像名_信号名”,如果想添加新的slot,按这个规则来添加函数就行,并且在函数定义语句之前加上@pyqtsignature(""),不用再重新生成一次dlghello.py文件。

其实另外一种关联signal与slot之间的方法是在运行里绑定,比如按钮对象btnabout的clicked信号的槽是about_clicked函数,那么在__init__函数中加入这样一句话:

        pyqt4.qtcore.qobject.connect(self.btnabout, pyqt4.qtcore.signal("clicked()"), self.about_clicked)

那么单击按钮btnabout时就会执行about_clicked函数。

两种方法各有长处。第一种方法简单,第二种方法对于多个signal使用同一个slot时很有效。

将on_btnhello_clicked函数改为:

    @pyqtsignature("")

    def on_btnhello_clicked(self):

        self.lblhello.settext("你好,pyqt4")

在文件头部加上:

import pyqt4, pyqt4.qtgui, sys

再在代码最后加上(与ui_dlghello.py末的几乎一样):

if __name__ == "__main__":

    app = pyqt4.qtgui.qapplication(sys.argv)

    dlg = dlghello()

    dlg.show()

    sys.exit(app.exec_())

这样就ok了。

 

7. 最后的收尾工作。

按f2运行脚本,发现点击“你好”按钮后lblhello label中的文字是乱码。

解决办法很简单,把代码中的("你好,pyqt4")改为(u"你好,pyqt4")就行了。pyqt4对中文的支持是很好的。代码统一使用utf8编码,能省去很多麻烦。


阅读(5251) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

2013-08-14 18:03:58

为什么图片看不了呢? 转载不全啊

|
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图