您的位置:首页 > 编程语言 > Python开发

Win10 搭建Python3 + PyQt5 + PyCharm 开发环境 超详细图解 无坑(三)

2018-11-06 15:55 531 查看
版权声明:版权所有,盗版必究。欢迎转载收藏。 https://blog.csdn.net/yl_best/article/details/83788582

目录

前言

目的

​​​​​​​PyCharm+PyUic快捷菜单工具配置(高级)---分离界面和逻辑

代码实例

总目录

前言

前面的内容我们介绍了利用PyCharm+QtDesigner来设计界面,再通过pyuic5将.ui文件转换成.py源文件。由于要响应事件操作,通常会将相应的槽函数写在ui对应的.py文件里。如此一来,界面和逻辑开发就混合在一起了。每一次ui更新都需要修改.py文件,软件开发效率低下。本文会介绍如何配置PyCharm+PyUic、分离界面和逻辑以及实例代码演示。

​​​​​​​目的

后续ui更新,只要将.ui文件替换,然后转换成_ui.py,逻辑部分就不用动,从而实现界面设计与逻辑开发分离。

关于信号和槽的解释可以参考我的另外一篇文章--《C++ Qt与PyQt5 信号与槽 对比说明》

​​​​​​​PyCharm+PyUic快捷菜单工具配置(高级)---分离界面和逻辑

把Qt的UI文件转换成.py文件的工具。

Description: convert .ui to .py

Program: C:\Python\Scripts\pyuic5.exe(在自己Python安装目录下找一下) 
Arguments: 

原来的参数: $FileName$ -o $FileNameWithoutExtension$.py

更新后的参数:  $FileName$ -o $FileNameWithoutExtension$_ui.py
Working directory: $FileDir$(可以拷贝我的设定,或者点击按钮“Insert macro…” 选择合适的macros)

配图说明请参考《Win10 搭建Python3 + PyQt5 + PyCharm 开发环境 (二)》之“PyCharm+PyUic快捷菜单工具配置”

代码实例

  1. 先用QtDesigner设计一个ui,采用默认的名字“MainWindow”。
  2. 添加一个菜单File,然后在菜单File下面添加几个选项,如下表,修改它们对应的objectName(一定要改,否则后面使用的时候会报错)

    Action

    objectName

    Exit

    exitAction

    Copy

    copyAction

    Paste

    pasteAction

    Cut

    cutAction

  3. 然后用我们配置好的pyuic tool来生成mainwindow_ui.py(自己在cmd控制台输指令也可以“pyuic5 mainwindow.ui -o mainwindow_ui.py ”)
  4. 在项目工程下新增一个mainwindow.py。注意:不带_ui,这个是我们逻辑处理的地方,主要是槽函数。然后将如下代码复制进去。
    [code]#! /usr/bin/env python
    # -*- coding: utf-8 -*-
    import sys
    from PyQt5.QtWidgets import QApplication,QMainWindow,QMessageBox
    
    from mainwindow_ui import *   # module mainwindow_ui.py
    
    class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
    super(MainWindow, self).__init__(parent)
    self.setupUi(self)
    
    self.exitAction.triggered.connect(self.onExitTriggered)
    self.copyAction.triggered.connect(self.onCopyTriggered)
    self.pasteAction.triggered.connect(self.onPasteTriggered)
    self.cutAction.triggered.connect(self.onCutTriggered)
    
    def onExitTriggered(self):
    QMessageBox.information(self, "Information", "Exit action triggered")
    pass
    
    def onCopyTriggered(self):
    QMessageBox.information(self, "Information", "Copy action triggered")
    pass
    
    def onPasteTriggered(self):
    QMessageBox.information(self, "Information", "Paste action triggered")
    pass
    
    def onCutTriggered(self):
    QMessageBox.information(self, "Information", "Cut action triggered")
    pass
    
    if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.show()
    sys.exit(app.exec_())

     

  5. 最后,右击执行Run

​​​​​​​​​​​​​​

 

总目录

Win10 搭建Python3 + PyQt5 + PyCharm 开发环境 图解 总目录

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: