在windows环境下用python写一个界面——第一个界面

在上一个博客中,完成了PyQt的安装,那么接下来就要开始了解如何去写一个界面了。当然,我了解到,可以在designer.exe中描绘好控件,生成.ui的文件,然后再由这个.ui的文件转成python语言。这样显然是比较简单的,但是缺点是不足以了解其中代码的含义。维护,迭代起来比较困难。所以,还需从基础开始。手写代码,生成界面,从而了解各个函数的意义。

正文

写一个界面程序,总共包括这几个步骤:导入模块,创建应用程序对象,创建界面,运行界面

1.创建应用程序对象
        为什么要创建这么一个对象呢?我们要进入界面,是不是需要先运行某个APP的图标,其实就是个.exe的执行文件。
    那这个.exe的文件就是进入界面的入口,而我们创建的应用程序对象就是这个.exe的文件。一般主要就是打开和关闭的作用。

2.创建界面


        当我们双击.exe的图标后,例如QQ,会弹出来一个图形界面来让我们操作,那此时这个界面如何制作?分为如下几步
    2.1 创建界面对象
        为什么要创建一个界面对象呢?因为我们要对这个界面进行操作。你可以把这一步理解为撕一张白纸,然后这个界面要
        做成什么样就可以理解为把这张纸做成什么样。那对纸进行画、裁剪都是对纸进行操作。同样,我们要做界面也是要对
        他这个对象进行操作。如果你要打开两个界面,也可以创建两个对象。这就是面向对象编程的思想。
    2.2 设置对象
        也就是我们要把这个对象做成什么样子,比如多长,多宽,颜色是什么样子,内容是什么样子等等
    2.3 展示对象
        我们设置好对象的内容后默认是不会展示出来的,是需要调用show这个方法才可以展示出来。

3.运行程序并无限循环,等待用户的操作。
    通过捕捉用户的操作来进行下一个逻辑。当用户点击退出按钮后再正常退出。

编写第一个最简单的界面

了解了界面程序的步骤后,就来开始写第一个界面了,程序如下

from PyQt5.Qt import *    #PyQt5.Qt其实是包含了例如Qwidget等常用的包,优点是方便初学者,缺点是占用内存
import  sys              # sys模块,应该都知道,如果不知道可以上python的官网查一下这个包的主要功能

#  1. 创建一个应用程序
app = QApplication(sys.argv)

#  2. 创建界面
window = Qwidget()

#  3.我们先不对界面进行设置,直接展示
window.show()


#  4.展示完之后我们要进入无线循环,等待用户操作
sys.exit(app.exec())


运行结果如下:

我们可以对这个界面进行一些简单的操作,例如最小化、最大化、关闭、拖拽、拉伸等等。但是却没有内容,没有控件来使我们进一步操作。接下来就在这个界面的基础上进行进一步操作。

from PyQt5.Qt import *    # PyQt5.Qt其实是包含了例如Qwidget等常用的包,优点是方便初学者,缺点是占用内存
import  sys               # sys模块,应该都知道,如果不知道可以上python的官网查一下这个包的主要功能

app = QApplication(sys.argv)  # 创建一个应用程序的对象

window = QWidget()         # 创建一个界面对象
window.setWindowTitle("xxxxxxxxxxx")  # 更改顶部标签
window.resize(2000,1500)   # size不包括顶层控制栏
window.move(400,200)       # 移动窗口位置

label = QLabel(window)  # 设置window作为父控件,这样的话就不会出现两个界面,也不会出现顶层控制栏,具体还需深入理解,可以把window去掉尝试运行,查看运行结果,自然会明白
label.setText("test")   # 在界面下添加文本
label.move(960,730)     # 移动文本位置

window.show()           # 窗口展示

sys.exit(app.exec())
"""
开始执行应用程序,并进入消息循环
app.exec()函数是让主系统进入无限循环
sys.exit()是让程序退出的函数,可以给这个函数传递参数。例如:sys.exit(0),给这个函数传递一个0,
当退出码为0的时候,表示正常用户退出,如果非零的话就表示程序内部出错退出。所以app.exec()里面是有
一个机制的,当用户点击X正常退出的时候,就会给app.exec()函数返回0。

"""

运行:

这一章需要理解的地方使子控件和父控件的关系,需要多尝试,自己领悟。后面基本上就是对控件的优化,使界面变得美观,然后再增加交互的内容。

发布了124 篇原创文章 · 获赞 19 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lm236236/article/details/103946746