经常使用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. html5 初试 indexedDB

    indexedDB是存储大量结构化数据的API,demo中用到的是异步API,麻烦的就是所有对indexedDB的操作都会发生一个异步的‘请求’,只要熟悉了API操作起来也很简单. http://ww ...

  2. IP地址相关知识

    IP地址基本概念                                                                                            ...

  3. Netty源码分析第3章(客户端接入流程)---->第1节: 初始化NioSockectChannelConfig

    Netty源码分析第三章: 客户端接入流程 概述: 之前的章节学习了server启动以及eventLoop相关的逻辑, eventLoop轮询到客户端接入事件之后是如何处理的?这一章我们循序渐进, 带 ...

  4. golang -- 字符串就地取反

    字符串 定义 在golang中字符串是一种不可变的字节序列,它可以包含任意的数据,包括0值字节,但主要是人类可以阅读的文本.golang中默认字符串被解读为utf-8编码的Unicode码点(文字符号 ...

  5. 高可用OpenStack(Queen版)集群-4.keystone集群

    参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...

  6. CUDA、CUDNN在Mac Book Pro上安装的问题

    由于原版MacOS自带Nvidia驱动版本过低,导致最新版本CUDA安装后无法运行.具体症状为:在编译时一切正常,在运行CUDA相关程序时报错: CUDA driver version is insu ...

  7. Notes of Daily Scrum Meeting(11.6 and 11.7)

    Notes of Daily Scrum Meeting(11.6 and 11.7) 因为七号星期五是放假的第一天,好几名队员要么是出去玩,要么是回家了,所以我们讨论之后在七号没有开始代码的编写, ...

  8. sqlDataAdapter和SqlCommand的区别

    因为DataSet是离线的,所以SqlDataAdapter这个对象是连接DataSet和数据库的桥梁,所有对DataSet的操作(填充,更新等)都要通过他 ado.net数据访问有两种方式: 1.离 ...

  9. 关于httpServlet.service()步骤

    关于httpServlet.service()步骤 关于()方法 1.HTTP Servlet 使用一个 HTML 表格来发送和接收数据.要创建一个 HTTP Servlet,就需要扩展 HttpSe ...

  10. 【Coursera】因子分析模型

    一.协方差矩阵 协方差矩阵为对称矩阵. 在高斯分布中,方差越大,数据分布越分散,方差越小发,数据分布越集中. 在协方差矩阵中,假设矩阵为二维,若第二维的方差大于第一维的方差,则在图像上的体现就是:高斯 ...