Qt——结合qt和python
经常使用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的更多相关文章
- 在Qt(C++)中与Python混合编程
一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...
- 在QT C++中调用 Python并将软件打包发布(裸机可运行)
为了提高工作效率,需要一个可以自动生成多份相关联的word文档免去繁琐复制粘贴工作的软件.最后选定使用QT C++做界面和主要逻辑程序设计,对word的操作使用python写好对应的函数,然后在QT中 ...
- 关于windows下QT以及QT creator的安装
普及 之 windows下qt的安装及配置 qt介绍 : Qt,分为商业.开源两个版本,商业版需要花钱购买license,而开源版本则遵守GPL协议,提供了源码,用户需要自行编译,才能生产动态 ...
- Qt Examples Qt实例汇总
ActiveQt Examples Using ActiveX from Qt applications. Animation Framework Examples Doing animations ...
- 【Qt】Qt之自定义界面(QMessageBox)【转】
简述 通过前几节的自定义窗体的学习,我们可以很容易的写出一套属于自己风格的界面框架,通用于各种窗体,比如:QWidget.QDialog.QMainWindow. 大多数窗体的实现都是采用控件堆积来完 ...
- 【Qt】Qt实战一二三【转】
简介 “我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流”,不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的状态,来开始每一天的 ...
- 【Qt】Qt Assistant介绍【转】
简介 Qt Assistant也就是我们常说的Qt助手,是一款用于呈现在线文档的工具. 简介 一分钟学会使用 Qt参考文档 Qt Assistant详解 命令行选项 工具窗口 文档窗口 工具栏 菜单 ...
- 【Qt】Qt Creator介绍【转】
简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...
- 【Qt】Qt环境搭建(Visual Studio)【转】
简述 经常有人问我编写Qt程序时使用什么IDE,其实这个真的很难回答(各有所长),只能说看个人爱好了,因为我两个都用,而且两个都很喜欢(比较多情吧O(∩_∩)O~)! 下面将进行Qt Creator与 ...
- Qt:QT右键菜单
Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html h ...
随机推荐
- flask中的简单的前端写入
那么flask这个框架是web开发,那么肯定离不开前端的一些代码,那么python用的web开发框架 开发所用的前端模板就是jinja2模板.相对于jinja1比起来性能做到了很大的提升,那么Vue一 ...
- [环境配置]Ubuntu16.04下编译安装gcc6.3.0
上一篇的SVS要用gcc6.3编译,否则结果不正确,本来以为gcc很好装,结果发现用apt-get安装gcc6只能安装6.5版本,代码作者奇特的要求只能用gcc6.3,没办法只能用源码装了,期间碰见了 ...
- lua字符串类型
Lua中字符串结构体的定义是: typedef union TString { L_Umaxalign dummy; /* ensures maximum alignment for strings ...
- Siki_Unity_4-4_丛林战争_Socket/TCP网络游戏开发
Unity 4-4 丛林战争(Socket/TCP网络游戏开发) 任务1:素材.演示.Prerequisite 使用c#的有关TCP的底层API进行服务器端的开发(直接通过socket进行通信) 功能 ...
- c++面向对象程序设计总结(类的使用)
本篇算是学习c++有关类的知识的一些易错点吧..... 并不是特别详细,以后会更新吧.... 几点并不关于类的东西 1.函数模板,用虚拟类型来实现模板的功能 #include<iostream& ...
- 详细介绍redis的集群功能,带你了解真正意义上的分布式
Redis 集群是一个分布式(distributed).容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset). ...
- Nginx反向代理负载均衡配置
1.反向代理概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...
- 查看、生成 SSH 密钥用于安全登陆
SSH 可以用来登陆服务器,远程执行命令,并用强加密算法编码保护通信安全,目前广泛应用于远程命令控制.文件加密传输等方面.SSH 登陆服务器的方法一般有两种:密码登陆和密钥登陆. 在受信任的设备上使用 ...
- OpenCV-Python(1)在Python中使用OpenCV进行人脸检测
OpenCV是如今最流行的计算机视觉库,而我们今天就是要学习如何安装使用OpenCV,以及如何去访问我们的摄像头.然后我们一起来看看写一个人脸检测程序是如何地简单,简单到只需要几行代码. 在开始之前, ...
- Python20 - Day09
python并发编程之多线程理论 1.什么是线程? 进程只是用来把资源集中到一起(进程是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位. 多线程(多个控制线程)的概念是,在一个进程中存在 ...