Python之Qt打造一个聊天软件【一】

Python之Qt打造一个聊天软件【一】

【引言】

Huh~,博主好久没写文了。今日写文就是记录最近干的那些事儿,权当作是记日记吧。或许我在将来的某一天,再回首时心境又抑不同了。

近日突发奇想,想做一个pc端上的应用软件,怎奈只懂一点vbtkinert之类的语言。我曾使用过vbtkinter,深知此软件要想开发大型软件真的很复杂和很困难,但我认为它们不失为做小工具的好开发软件或者语言。

本着之前有使用其他语言开发小软件的经历,所以打算学习一下pc端上的软件开发,想来也应该差不多,只是使用到的环境、语言和坑不同而已,事实证明我的想法是对的。

下面开始大概的介绍一下,我是如何实现编写pc上的这个聊天软件的。

【安装环境】

我系统的环境是windows 10,编辑器是pycharm,点击pycharm按照教程装好后我们在接下来安装。

安装好pycharm后,我们运行pychram后,按Ctrl+Alt+S使用快捷方式打开设置界面。然后我们选择Project Interpreter选项,点击最右上方边的+图标然后将如图绿框的中库文件名全部依次输入然后点击install Package进行安装库文件的操作。

当我们安装完库再去添加扩展工具,主要是为了方便使用我们刚刚安装的一部分工具。还是在stttings页面中,我们选择External Tool选项,然后点+图标输入相应参数即可完成。

比如我的部分参数:

QtDesigner:
  Program:D:\Python3.7.4\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
  Arguments:
  WorkingDirectory:$FileDir$
PyUIC:
  Program:D:\Python3.7.4\python.exe
  Arguments:-m PyQt5.uic.pyuic  $FileName$ -o$FileNameWithoutExtension$.py
  WorkingDirectory:$FileDir$
PuRcc:
  Program:D:\Python3.7.4\Scripts\pyrcc5.exe
  Arguments:$FileName$ -o$FileNameWithoutExtension$_rc.py
  WorkingDirectory:$FileDir$

当我们安装好相应的环境之后我们就可以来编写代码了。

【跃跃欲试,编写第一个Helloworld

经过短暂的学习,我学会了使用qt desinger软件,明白了其相关技巧和用法,然后接下来我们开始编写自己的第一个helloworld程序。

首先我们在工作目录下创建一个名为Hello的文件,然后再从工具栏快速打开QtDesigner

进入Qt Desinger后,我们选择创建Widgets窗口:

然后我们从Widget Box中拖个PushButton按钮到创建的Widget内,编辑text文本内容为hi

因为我们想要实现点击对象名为pushButton的按钮弹出一个hello的提示窗口。

所以我们为这个按钮添加一个信号槽,我们先从Edit Widgets模式切换到Signal/Slots模式,并点击然后向外拖出名为pushButton的按钮,出现Configure Connection界面我们选中clicked()然后我们新增一个SayHello()的函数名:

然后选用SayHello()函数并点击OK进行保存:

然后我们按Ctrl+S保存到我们最开始建立的Hello文件下并命名为hi.ui:

至此我们的hello程序的ui就设计完毕了,接下来我们回到Pycharm先创建一个Index.py再使用PyUIC右键选中hi.uihi.ui文件编译成hi.py文件:

 然后我们向刚刚创建的Index.py文件写入如下代码:

import sys      #导入sys库
from PyQt5 import  QtCore, QtGui, QtWidgets     #导入pyqt的基本库
from Hello.hi import Ui_Form     #导入之前我们创建然后编译的hi.py文件中的Ui_Form类

class SayHelloView(QtWidgets.QWidget,Ui_Form): #SayHelloView类第一个参数引入QtWidgets.QWidget,第二个引入之前编写的Ui    
    def __init__(self):
        super(SayHelloView, self).__init__()
        self.setupUi(self)
        # __init__: 析构函数,也就是类被创建后就会预先加载的项目,这个方法可以用来对你的对象做一些你希望的初始化。                # super() 函数是用于调用父类(超类)的一个方法,setupUi()调用ui        
        #在PyQt中,所有class都是从QObject派生而来,QWidget对象就可以有一个parent。    
    def SayHello(self):     #连接到之前写的信号槽        
        QtWidgets.QMessageBox.information(self, "Tips", "Hello,World!", QtWidgets.QMessageBox.Yes)  #弹出MessageBox
if __name__ =='__main__':                       #在程序本身被执行的时候才能运行这个判断语句下面的语句    
    app = QtWidgets.QApplication(sys.argv)   
  #每个PyQt5应用程序必须有应用程序对象,sys.argv参数是来自命令行的参数列表。 Python脚本可以从shell运行。 写了这句话就能让我们的程序从命令行启动。    
    SayHelloWindow = SayHelloView()             #实例化SayHelloView类    
    SayHelloWindow.show()                       #显示它,如果没有这句话,前面做的工作就没法看到,只是存进了内存里    
    sys.exit(app.exec_())                       #干净的退出并进入循环

 如图所示:

10.png

 我们保存它后运行该Index.py文件,然后点击名为hi的按钮显示Hello,World!信息成功了:

11.png

 【牛刀小试,准备编写聊天软件】

 文章未完待续,我们接下来将开始正式编写聊天软件的代码。

在此之前,写给大家放部分功能的截图:

13.png

12.png

14.png

15.png

16.png

17.png

部分功能截图介绍至此...


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2020-03-01 19:06:58

修改时间:2020-03-01 20:41:27

查看次数:134

评论次数:0