weiqi7777

Python编写界面(三) 界面程序设计

0
阅读(9486)

 

         在之前,完成了界面的设计,下面就要对界面进行编程,实现界面功能。首先对之前设计的界面进行保存,得到一个后缀是ui的文件。使用pyuic4ui文件转换成py文件,这样我们才能用python进行编程。至于pyuic4工具,可百度。

clip_image002

         这样,就得到了界面的python代码。打开,查看下,软件自动将界面封装成了一个类。然后再这类中,将界面进行实现。下面,我们就要来改造这个类,让界面实现功能。

clip_image004   

         要让界面实现功能,其实就是要编写控件触发后,应该执行的程序。要实现这个的话,就要用到pyqt4中的信号与槽的机制。简单来说,这个信号与槽就是,当控件触发后,会发出一个信号,然后这信号是与一个函数关联起来的,这样,就会去执行这个函数。

         回到designer中,对勾选框和按钮创建信号与槽。因为对于勾选框,勾选后,按钮才能使用。对于按钮,按下后,会显示注册信息。

         选择信号与槽。

clip_image006 

    选中勾选框控件,按住鼠标往外拖,会出现一条线和一个接地的符号。释放后,会出现配置界面。

clip_image007

       左边是控件的信号列表,这里选择clicked,表示点击。选择右边的编辑,弹出界面,点击+号,增加一个槽。上面灰色的是控件自带的一些函数。增加后,点击下方的OK

clip_image009                

         选择右边刚刚添加的槽,OK

image

        在右下角的信号/槽编辑器中就会出现刚刚建立的信号和槽了。

        同理,再建立按钮的信号和槽。

image

       这样,在designer中,就设计完了。在保存,使用pyuic4ui转换成py

  在代码中,就要多下面两行,设置信号与槽的。都是与控件的点击有关的。当勾选框点击的时候,触发clicked信号,然后执行agree_on函数。当按钮点击的时候,触发clicked信号,执行register函数

clip_image015

       然后就实现agree_onregister函数就可以了。

       在类中定义这两个函数

       clip_image016

       agree_on函数中,首先判断勾选框是否选中,选中的话,就将按钮的enabled属性给使能,否则不使能。

       register函数中,将用户名数据保存在text变量中,然后判断是选择的男还是女,是男的话,将男加入到text中。在读取年月日值。不过要注意,月和日使用的spinBoxvalue的值是int型,要将int型转化为str型。最后将text写入到文本框中。

       最后一步,也是关键的一步。因为界面是一个类,所以要去例化这个类,才能将界面显示出来。以下是例化的代码:

       clip_image017  

       这个时候,执行程序,就出现界面了。

clip_image019

       可以发现,注册的按钮是灰色的,不能使用,因为还没有勾选勾选框。

       勾选勾选框,填入数据,点击注册按钮,文本框就显示注册信息了

clip_image021        

         以上就是设计界面一个实例,希望通过这个实例,能让大家知道怎么使用pyqt4来编写一个界面。

         总结起来,实现界面,有以下几步:

1、  使用designer设计界面

2、  对需要的控件创建信号与槽

3、  使用pyuic4ui转换成py

4、  py中,编写各个槽的函数的实现

5、  新建一个py,对界面的类进行例化