weiqi7777

Python编写界面(一) 使用PyQt4 designer构建界面

0
阅读(15786)

      在使用PyQt4编写界面,有两种方式,一种就是纯代码编程方式,第二种就是使用PyQt4自带的designer来构建界面。使用designer构建界面,是相当方便的。

         打开designe软件,会弹出以下界面,问你要创建什么样的界面。有几个模板选择,这个和MFC有点像。这里,选择什么都可以。

         关于Main WindowWidget,通过我测试,发现只有是否有菜单栏的区别。Main Window是有菜单栏的。

clip_image001

创建完后,就是以下界面

clip_image003

1、  是各个控件

2、  画布,也就是界面的部分,可以将各个控件拖放到该画布上

3、  属性界面

DesignerMFCdelphi是一样的,将各个控件拖到画布上,然后设置控件的属性。不过区别就是designer只能实现界面,不能实现功能。要实现功能,要将界面导出,然后再外部用python编写。

关于控件,有几个是比较常用的。Designer将控件分成了几个部分。

控件

控件说明

Layout(布局)

Vertical Layout(垂直布局)

创建一个垂直布局,在垂直布局中可以加入控件,控件以垂直的方式放置

Horizontal Layout(水平布局)

创建一个水平布局,在水平布局中可以加入控件,控件以水平的方式放置

Grid Layout(格点布局)

创建一个格点布局,在格点布局中可以加入控件,控件以定义的坐标放置

Spacer(间隔)

Horizontal Spacer(水平间隔)

制造一个水平间隔

Vertical Spacer(垂直间隔)

制造一个垂直间隔

Button(按钮)

Push Button(按钮)

普通的按钮

Radio Button(单选按钮)

若有单个按钮,只会有一个选中

Check Button(复选框)

进行选择

Input Widget(输入部件)

Line Edit(行编辑框)

只能一行输入的框

Text Edit(文本编辑框)

输入文本的框

Spin Box(选值框)

选择整数数值

Double Spin Box(小数选值框)

选择小数数值

Combo Box(组合框)

从给出的组合中,选择一个

Display Widgets(显示部件)

Label(标签)

显示固定的数据

其实还有其他很多控件,大家可以自行研究。

构建界面也是也很简单的,就是选中控件部分的控件,拖放到画布上即可了。以下是随意弄出来的一个界面。

clip_image004

当控件拖放完毕后,就要对各个控件的属性进行一些设置了。

属性设置里面有两部分,一部分是各个控件都共有的属性,包括控件使能,控件位置大小等等。还有一部分是各个控件自己的属性。设置一般是设置控件自己的属性。

在控件的全局属性,有一个enabled属性,这个属性是控制在界面运行中,控件是否可以操作。如果对于输入框,没有选上勾,那么就不能输入数据了,显示是灰色的。我们可以控制这个属性,来实现某些控件的使能。

clip_image005

对于控件的私有属性,以lineEdit控件为例

clip_image006

在属性一栏,可以看到很有属性,我们可以在这里修改属性。也可以在程序中修改属性。我发现,在程序中,可以使用属性(),来得到属性的内容。比如,有text属性,通过text(),就可以得到text属性内容。其他的也是一样,但是对于勾选框的就不一样了。勾选框属性,要通过is属性名(),来得到,属性名的第一个字母要大写。比如,readOnly这个属性,要通过isReadOnly(),就得到这个属性是否选择了,这种选择的,返回FalseTrue

以上是得到属性的内容,其实也是可以设置内容的。设置的方式就是set属性名(要设置的属性内容),其中属性名的第一个字母要大写。比如要设置text内容是weiqi7777,就setText(“weiqi7777”),这样,控件中的数据就显示为weiqi7777了。

界面构建好后,可以对界面进行预览

clip_image007

以下就是预览界面

clip_image008

可以在输入框中输入数据,可以点击按钮。但是点击按钮是没有反应的。因为还没有编写程序实现按钮的功能。

这样,一个界面就做好了。后面导出,在python中,实现控件的功能,一个完整的界面就可以实现了。

后面会以一个具体的示例讲解,怎么用designer编写界面,并实现用python编写界面的功能。