PyQt5简单例程及在PyCharm中设置PyQt5

本文介绍Python使用PyQt5进行界面程序编写的一个简单例程。

参考博客http://blog.csdn.net/u013401853/article/details/54581512,参考的博客写的更为详细一些。

容易出现下面问题:

解决Pycharm无法导入包问题 Unresolved reference



  • 软件环境准备

       PyQt5只有在Python3.5及其以上版本中才能使用,安装方法在Python库安装这篇博客中有说明。此外,需要安装Qt的开发环境,需要使用其中的工具--QtCreator或者Designer。PyQt5的主要作用就是使得Python调用使用QT设计的ui界面进行编程,如此这般就可将QT的界面设计便捷和Python强大的优点结合起来。

补充:(可选,但是建议配置,使用起来更方便)

       为了方便在PyCharm中更方便的使用PyQt5,需要在PyCharm中配置PyQt5,包括Qt的Designer以及PyQt5自带的pyuic5工具。

       配置过程见:

       PyQt5+python3+pycharm开发环境配置

  • Qt界面设计

       在Qt的界面开发开发中,设计界面可以使用Qt Creator或者Designer,本质是一样的,本文中使用Designer。

        新建一个Main Window项目,保存为testPyQt5.ui(参考博客中建立的是Widget项目)

       

      在界面上添加一个pushButton,名为btn,添加一个testEdit,名为textEdit

      


      通过上图中的来为pushButton添加一个槽函数btn_click(),该图标就是信号和槽编辑器。

     进入信号槽编辑模式后,左键按住pushButton然后往外拖到一个地方松开,便会出现下图中的样子

   

 上图中左边为名为btn的pushButton的信号,选中clicked()信号,右边即为与该信号绑定的槽函数。

  由于该信号暂时并没与任何槽函数相连接,所以右边的槽函数框中是空白的。此时就需要自己新建一个槽函数了。点击编辑,会弹出一个界面中,点击槽对应的框下面的   ,会生成一个函数,名字修改为btn_click()

        

   然后确认。在返回的界面中,在槽函数那一栏中选择刚才自定义的btn_click()函数

    

    确认并保存。然后将testPyQt5.ui文件放到自己的项目目录下。

  • Qt的 ui文件转化为python文件

      PyQt5提供了将ui文件转化为python文件的工具--pyuic5,在python安装目录下的scripts文件夹下,记得将pyuic5所在的路径添加到系统环境变量中。

     进入项目目录下(前一步中已将testPyQt5.ui放到项目目录下)

      输入:

   pyuic5 testPyQt5.ui -o testPyQt5.py
      便会在当前目录下生成名为testPyQt5.py的文件。

      如果前面自PyCharm中配置了PyQt5,就可以直接邮件testPyQt5.ui,External Tools->PyUIC,就自动生成了.py文件。

  • 在Python中使用Qt设计的界面

       代码如下:

  

from testPyQt5 import Ui_MainWindow  #导入uitestPyQt5.ui转换为uitestPyQt5.py中的类

from PyQt5 import QtWidgets
import sys

class Mywindow(QtWidgets.QMainWindow,Ui_MainWindow):  
#建立的是Main Window项目,故此处导入的是QMainWindow
#参考博客中建立的是Widget项目,因此哪里导入的是QWidget
    def __init__(self):
        super(Mywindow, self).__init__()
        self.setupUi(self)

    def btn_click(self):     #定义槽函数btn_click(),也可以理解为重载类Ui_MainWindow中的槽函数btn_click()
        self.textEdit.setText("hi,PyQt5~")

app = QtWidgets.QApplication(sys.argv)
window = Mywindow()
window.show()
sys.exit(app.exec_())

 效果如下图:

 


  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值