以下文字是自己手打,如有错误请提出。本人用C#多年,C#是一门优秀的语言,也做了很多工具。主要是测试和自动化控制。 本人不是专业做上位机的,对C#也只能说是了解,但是也完成了我所有的要求,运行也很稳定。虽然做个项目要到处查资料。

,但是Python语言结构清晰,简单易用,让我动了用pyton做上位机的念头。

PyQt 就是Python + QT 的GUI设计。

大家都知道vs编译器的强大。这就不多说了。 qt也是牛逼的。Python也是很牛逼的。

可以说qt能完成的事,pyqt也能完成。而且pyqt有强大的Python库的支持就能牛逼了。

下面说说配置的过程。大家有更好的方案请提出一起交流。

1. 安装 Python3。 这个就不多说了。建议安装32位的,因为64位的打包不能在32位机器上运行。记得把pip勾上。

2. 安装成功后,在cmd窗口安装sip 命令如下: pip install sip

3. 接着安装 PyQt5, 命令如下:pip install PyQt5

   安装好之后就可以用pyqt5编程了。

   可以输入下面代码测试: 直接在Python编辑器里输入:

1. import sys     
2. from PyQt5 import QtWidgets   #导入QT的界面控件
3. app = QtWidgets.QApplication(sys.argv)  
4. widget = QtWidgets.QWidget() #生成一个窗口界面实例 继承QWidget
5. widget.resize(300, 100)      #设置窗口的大小
6. widget.setWindowTitle("我的PyQt5")  #设置窗口标题
7. widget.show()         #显示窗口
8. sys.exit(app.exec_()) #循环

运行后可以看到这个窗口,说明安装正常了。

<ignore_js_op>

 

到目前为止可以用PyQt5进行高效编程了。 

当然不是所有人的都喜欢用代码写界面,下面就到Qt Designer 出场了。Qt Designer是界面设计软件。是QT的一个功能,可以用Designer设计好界面,然后生成ui文件,转换成py文件,导入pyqt中。里面有了所有窗口的代码。我们只要关心自己的算法就行了。 

这些工具都在PyQt5-tools 工具包中,下面我们来安装。在cmd 命令窗口中输入 pip install PyQt5-tools 

安装完成后这些文件在Python-Lib-site-packages 文件夹里面。

配置VS2017. 如果只要用pyqt5,那不用配置,因为VS已经做好了。直接可以写。如果要用Qt Designer 辅助设计,就要导入这个工具:

1. 先进入vs的Python界面。 选择Python-》Python 应用程序  新建一个项目。

2. 选择工具-外部工具,如图的界面,点击添加

<ignore_js_op>

 


命令处选择: C:\Program Files\Python36\Lib\site-packages\pyqt5-tools\designer.exe

参数:main_form.ui    //意思是每次都生成 mainform.ui 文件。方便修改。

初始目录:$(ItemDir)  //生产在项目文件夹

然后再添加:

<ignore_js_op>

 


命令: C:\Program Files\Python36\Scripts\pyuic5.exe

参数:main_form.ui -o main_form.py //把 main_form.ui 生产 main_form.py

初始目录:$(ItemDir)  //生产在项目文件夹


配置完成: 可以在工具栏中看到 PyQt5Designer  和 pyuic5 两个选项了。

点击 PyQt5Designer  - 》确认 --》NewForm--》Main Window-->Create 就可以生产一个From 的界面了。 把你需要的工具拉进来,设计好界面。

设计界面如下:

<ignore_js_op>

 

添加一个信号槽,点击按键退出程序。

<ignore_js_op>

 

点击保存,可以看到项目文件夹下面多了一个 main_form.ui 文件。点击工具--》pyuic5--》确定。 又多了一个main_form.py , 这个就是界面的代码了。 

把这个文件加入项目里面。

这个代码如下,全部是自动生成:

1. # -*- coding: utf-8 -*-
2. 
3. # Form implementation generated from reading ui file 'main_form.ui'
4. #
5. # Created by: PyQt5 UI code generator 5.10.1
6. #
7. # WARNING! All changes made in this file will be lost!
8. 
9. from PyQt5 import QtCore, QtGui, QtWidgets
10. 
11. class Ui_MainWindow(object):
12.         def setupUi(self, MainWindow):
13.                 MainWindow.setObjectName("MainWindow")
14.                 MainWindow.resize(438, 281)
15.                 self.centralwidget = QtWidgets.QWidget(MainWindow)
16.                 self.centralwidget.setObjectName("centralwidget")
17.                 self.pushButton = QtWidgets.QPushButton(self.centralwidget)
18.                 self.pushButton.setGeometry(QtCore.QRect(140, 100, 121, 51))
19.                 self.pushButton.setObjectName("pushButton")
20.                 MainWindow.setCentralWidget(self.centralwidget)
21.                 self.menubar = QtWidgets.QMenuBar(MainWindow)
22.                 self.menubar.setGeometry(QtCore.QRect(0, 0, 438, 23))
23.                 self.menubar.setObjectName("menubar")
24.                 MainWindow.setMenuBar(self.menubar)
25.                 self.statusbar = QtWidgets.QStatusBar(MainWindow)
26.                 self.statusbar.setObjectName("statusbar")
27.                 MainWindow.setStatusBar(self.statusbar)
28. 
29.                 self.retranslateUi(MainWindow)
30.                 self.pushButton.clicked.connect(MainWindow.close)
31.                 QtCore.QMetaObject.connectSlotsByName(MainWindow)
32. 
33.     def retranslateUi(self, MainWindow):
34.             _translate = QtCore.QCoreApplication.translate
35.             MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
36.             self.pushButton.setText(_translate("MainWindow", "按我退出程序"))
37.

然后在主程序文件里面添加代码

    1. import sys
    2. from PyQt5.QtWidgets import QApplication,QMainWindow
    3. from main_form import Ui_MainWindow  #导入生成的窗口类
    4. 
    5. #新建一个类来继承生成的窗口,也可以在这里添加关于窗口处理的代码,比如自定义信号等。
    6. class MyMainWindow(QMainWindow, Ui_MainWindow):
    7.         def __init__(self, parent=None):    
    8.                   super(MyMainWindow, self).__init__(parent)
    9.                   self.setupUi(self)
    10.             
    11. #主程序,生成一个窗口实例并运行。
    12. if __name__=="__main__":  
    13.         app = QApplication(sys.argv)  
    14.         myWin = MyMainWindow()  
    15.         myWin.show()  
    16.         sys.exit(app.exec_())

    运行后界面如下:点击按键退出:

    <ignore_js_op>

     

    这就完成了界面的设计流程。和c#一样的方便。但是结构比c#清晰多了。外部控件也超多。

     

     

    在win10下进行安装方法:

    vs python生成 vs写python怎么样_QT