经常使用qt的童鞋一定有过这样的经历:百度或Google某个关于Qt的问题的时候,发现有的解答不是用的C++,而是包含很多py、__init__、self之类的词。

如果学过python,你会发现,这些不都是python中的类和函数吗?

OK,下面对它作简单的介绍——

一、PyQt5

PyQt5一个编写界面和应用程序的工具,它将python语言编程和Qt库结合起来,可以用python编写跨平台的应用。

闭上眼想一想,用基于C++的Qt来设计界面是不是很容易,而且效率很高?Python有多强大,写各种程序都省时省力,尤其是爬虫的时候有谁能比它厉害?将它们结合起来使用,你是不是无敌了?好吧,这都是我YY出来的,还是回到现实吧。

PyQt5的官方教程:点我!

使用的时候与C++中差不多,只不过用的是python的语法。

二、安装

1.首先需要安装python,可以到官网下载,我是安装的python科学计算版本Anaconda中的python3.5。

2.接下来是安装PyQt5,于是我找到了这个网页,可以直接下载下来安装,也可以使用命令安装,于是我随手一敲——

pip install PyQt5

然后写了个测试程序,问题来了,总是出错,提示找不到模块。

于是继续百度&谷歌,发现PyQt5不支持python3.5!那该怎么办?再安装一个低版本的python?

并没有,

最后终于在一个神奇的地方,找到了适合python3.5的PyQt,点我

选择与自己系统匹配的安装文件,安装完成之后就能正常使用了。

三、小试牛刀

写一个非常简单的登录界面试试:

import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import * class LoginWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.initUi()
def initUi(self):
#初始化窗口部件
usrLbl = QLabel()
usrEdit = QLineEdit()
pwdLbl = QLabel()
pwdEdit = QLineEdit()
confirmBtn = QPushButton()
cancelBtn = QPushButton()
usrLbl.setText('用户名')
pwdLbl.setText('密码')
confirmBtn.setText('确定')
cancelBtn.setText('取消')
hrLayot1 = QHBoxLayout()
hrLayot2 = QHBoxLayout()
hrLayot3 = QHBoxLayout()
hrLayot1.addWidget(usrLbl)
hrLayot1.addWidget(usrEdit)
hrLayot2.addWidget(pwdLbl)
hrLayot2.addWidget(pwdEdit)
hrLayot3.addWidget(confirmBtn)
hrLayot3.addWidget(cancelBtn)
vrLayout = QVBoxLayout()
vrLayout.addLayout(hrLayot1)
vrLayout.addLayout(hrLayot2)
vrLayout.addLayout(hrLayot3)
self.setLayout(vrLayout)
self.setWindowTitle("登录窗口") #信号槽连接
confirmBtn.clicked.connect(self.confirmBtnClicked)
cancelBtn.clicked.connect(self.cancelBtnClicked) def confirmBtnClicked(self):
print('您点击了确定按钮') def cancelBtnClicked(self):
print('您点击了取消按钮')
self.close() if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
loginWgt = LoginWidget()
loginWgt.show()
sys.exit(app.exec_())

运行后的界面如下:

从代码中可以看到,qt中各个部件还有布局之类的,语法和一些函数与python中的使用几乎是一样的。

不同的地方是信号槽的连接,参考官方文档:点我!

That's all.

Qt——结合qt和python的更多相关文章

  1. 在Qt(C++)中与Python混合编程

    一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...

  2. 在QT C++中调用 Python并将软件打包发布(裸机可运行)

    为了提高工作效率,需要一个可以自动生成多份相关联的word文档免去繁琐复制粘贴工作的软件.最后选定使用QT C++做界面和主要逻辑程序设计,对word的操作使用python写好对应的函数,然后在QT中 ...

  3. 关于windows下QT以及QT creator的安装

    普及  之  windows下qt的安装及配置   qt介绍 : Qt,分为商业.开源两个版本,商业版需要花钱购买license,而开源版本则遵守GPL协议,提供了源码,用户需要自行编译,才能生产动态 ...

  4. Qt Examples Qt实例汇总

    ActiveQt Examples Using ActiveX from Qt applications. Animation Framework Examples Doing animations ...

  5. 【Qt】Qt之自定义界面(QMessageBox)【转】

    简述 通过前几节的自定义窗体的学习,我们可以很容易的写出一套属于自己风格的界面框架,通用于各种窗体,比如:QWidget.QDialog.QMainWindow. 大多数窗体的实现都是采用控件堆积来完 ...

  6. 【Qt】Qt实战一二三【转】

    简介 “我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流”,不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的状态,来开始每一天的 ...

  7. 【Qt】Qt Assistant介绍【转】

    简介 Qt Assistant也就是我们常说的Qt助手,是一款用于呈现在线文档的工具. 简介 一分钟学会使用 Qt参考文档 Qt Assistant详解 命令行选项 工具窗口 文档窗口 工具栏 菜单 ...

  8. 【Qt】Qt Creator介绍【转】

    简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...

  9. 【Qt】Qt环境搭建(Visual Studio)【转】

    简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了,因为我两个都用,而且两个都很喜欢(比较多情吧O(∩_∩)O~)! 下面将进行Qt Creator与 ...

  10. Qt:QT右键菜单

    Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html h ...

随机推荐

  1. Spring是什么?优点是什么?

    大部分项目都少不了Spring的身影,为什么大家对他如此青睐,而且对他的追捧丝毫没有减退之势呢 Spring是什么: Spring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与 ...

  2. [PLC]ST语言六:DI/EI/FEND/WDT/FOR/NEXT

    一:DI/EI/FEND/WDT/FOR/NEXT 说明:简单的顺控指令不做其他说明. 控制要求:无 编程梯形图: 结构化编程ST语言:

  3. c#多线程中Lock()关键字的用法小结

    本篇文章主要是对c#多线程中Lock()关键字的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助     本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段 ...

  4. Unity扩展编辑器二

    Unity支持自行创建窗口,也支持自定义窗口布局,在Project视图中创建一个Editor文件夹,在文件夹中创建一条脚本 自定义窗口需要让脚本继承EditorWindow在设置MenuItem,此时 ...

  5. 图形 - bootStrap4常用CSS笔记

    .rounded 图片显示圆角效果 .rounded-circle 设置椭圆形图片 .img-thumbnail 设置图片缩略图(图片有边框) .img-fluid 响应式图片 .float-righ ...

  6. 环境变量的配置-java-JMETER - 【Linux】

    rz上传 lz下载 步骤: . Linux下首先安装Jdk: . 下载apache-jmeter-4.0.tgz,复制到Linux系统中的/opt目录下: . 解压apache-jmeter-4.0. ...

  7. SSH免密登录(并且免yes交互)

    问题描述:主机A使用ssh协议远程主机B,默认会开启口令认证,即输入主机B对应用户的登录密码,并且第一次登录时,主机A需验证是否接受来自主机B的公钥,输入"yes/no"完成交互. ...

  8. Erlang数据类型的表示和实现(3)——列表

    列表 Erlang 中的列表是通过链表实现的,表示列表的 Eterm 就是这个链表的起点.列表 Eterm 中除去 2 位标签 01 之外,剩下的高 62 位表示指向列表中第一个元素的指针的高 62 ...

  9. 字幕字体滚动插件——scroxt.js

    README scroxt.js Overview scroxt.js是一个字体滚动的插件库,包括视频弹幕滚动,直播弹幕.直播弹幕强制模式.单行水平左右滚动.文本垂直滚动上下,用于简单快捷生成滚动字体 ...

  10. 面向对象OO第15次作业总结

    面向对象OO第15次作业总结 1.论述测试与正确性论证的效果差异,比较其优缺点测试通过大量测试数据来覆盖测试代码,比较直观,优点在于知道测的是啥,特别直观,缺点在于很难覆盖所有情况.正确性论证从逻辑关 ...