PyQt5入门(一)

PyQt5入门(一)_第1张图片

 PyQt5入门(一)_第2张图片

PyQt5入门(一)_第3张图片

PyQt5入门(一)_第4张图片

PyQt5入门(一)_第5张图片

 

因为环境我早已经有了,所以这里就直接跳了,我py用的是anaconda,里面pyqt5的库都带了。

QApplication和QWidget分别代表整个应用程序和一个窗口。

QApplication 简述

QApplication 类管理图形用户界面应用程序的控制流和主要设置。 可以说 QApplication是Qt的整个后台管理的命脉

它包含主事件循环,在其中来自窗口系统和其它资源的所有事件被处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。它也处理绝大多数系统范围和应用程序范围的设置。

对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。

QApplication 对象是可以通过全局变量qApp访问。

argc和argv是命令行传进去的参数。比如linux里输入一个命令
cp file.c file1.c
那么argc=3 argv就是上面那行字符串数组。
因为图形编程有时也需要从命令行传递参数给程序,所以才会有argc和argv。

sys.exit(app.exec_())

1.app.exec_()的作用是运行主循环,必须调用此函数才能开始事件处理,调用该方法进入程序的主循环直到调用exit()结束。主事件循环从窗口系统接收事件,并将其分派给应用程序小部件。如果没有该方法,那么在运行的时候还没有进入程序的主循环就直接结束了,所以运行的时候窗口会闪退。

app.exec_()在退出时会返回状态代码

2.不用sys.exit(app.exec_()),只使用app.exec_(),程序也可以正常运行,但是关闭窗口后进程却不会退出。

sys.exit(n)的作用是退出应用程序并返回n到父进程。

import sys

from PyQt5.QtWidgets import QApplication,QWidget

if __name__=='__main__':
    # 创建QApplication实例
    app=QApplication(sys.argv)#获取命令行参数
    #创建一个窗口
    w=QWidget()
    #设置窗口的尺寸
    w.resize(400,200)#宽,高
    #移动窗口左上角坐标,其实就移动了窗口
    w.move(300,300)
    #设置窗口标题
    w.setWindowTitle('first page')
    #显示窗口
    w.show()
    '''
    进入程序主循环,循环扫描响应在窗口上的事件,让整个程序不会退出
    通过exit函数确保主循环安全结束
    '''
    sys.exit(app.exec_())

运行结果:

PyQt5入门(一)_第6张图片

可视化工具 Qt designer的安装我就跳了,可以安装Qt(比anaconda大),而且anaconda自带了一个designer.exe,所以我就不下了, 苹果系统我就不说了,windows下在anaconda的library->bin下

PyQt5入门(一)_第7张图片

但每次启动designer都从anaconda里找的话太麻烦,下面通过扩展工具来实现在pycharm直接启动designer

文件->设置->工具(最后一个)->外部工具

PyQt5入门(一)_第8张图片

然后连着俩确定就完成了。

右键像下面那样找到启动就OK了,或者最上面一行Tools->External Tools里启动也行

PyQt5入门(一)_第9张图片

 启动之后报了拒绝访问的错误,如下:

发现路径不完整,要精确到exe文件才行!!!!!

之后,启动成功!

 

今天实训在教室玩了一上午,中途睡了一会,应该是昨天冻着了,昨晚躺在床上身上阵阵发冷,现在感觉有点活过来了,敲一波。

Spacer是间隔控件

将.ui文件转化成.py文件:

法一(命令行):

示例:先在qt里随便拖几个控件,另存到pycharm的工作路径(右键你的py包,选择复制路径)下,把路径粘帖上,最后加上文件名就OK了。

PyQt5入门(一)_第10张图片

PyQt5入门(一)_第11张图片可以看到已经存入

然后命令行下输入python -m PyQt5.uic.pyuic ui_test.ui -o ui_test.py

报错如下:

我将anaconda的环境变量调整到python的前面还是不行,参考这篇博客,可能我的anaconda环境还没激活,在pycharm的命令行下切换到anaconda的安装路径下的Scripts中,执行activate命令即可。

然后再回到工作目录执行刚才的命令即可。

PyQt5入门(一)_第12张图片 转换成功!

法二(配置PYUCI插件):

相较于法一,还是法二更加方便些。

在anaconda的安装路径下\pkgs\pyqt-5.9.2-py37h6538335_2\Library\bin 里面有个pyuic5.bat文件,也就是可以直接用此命令将.ui文件转化为.py文件。

windows下添加外部工具(操作和上面差不多,参数配置略有不同)

pyuic配置:
program: python解释器(就是anaconda的安装路径下的python.exe路径)
arguments: -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
working directory: $FileDir$($FileDir$是在当前目录下将.ui文件生成.py文件,而$ProjectFileDir$是在总目录树下生成,这时就会产生空文件夹的报错问题。如果用后者的话就会遇到常见问题Error: No such file or directory: "ui_test.ui"

PyQt5入门(一)_第13张图片

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(PyQt5,PyQt5,桌面应用)