经常使用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. jsp如何往js里传值

    1.jsp里定义id: 2.js里用j-query选择器获取(     $('#id).val();      )    或者docment.getEle....获取.

  2. 【前端模板之路】一、重构的兄弟说:我才不想看你的代码!把HTML给我交出来!

    写在前面 随着前端领域的发展和社会化分工的需要,继前端攻城湿之后,又一重要岗位横空出世——重构攻城湿!所谓的重构攻城湿,他们的一大特点之一,就是精通CSS配置文件的编写...前端攻城湿跟重构攻城湿是一 ...

  3. xshell提示评估过期怎么办?

    刚刚打开xshell准备连上虚拟机写代码,结果提示评估过期,真的很气,在百度上找了好久才找到解决办法,现在分享给大家:. 1.复制这个链接在浏览器打开https://www.netsarang.com ...

  4. TensorFlow Python3.7环境下的源码编译(三)编译

    这里要为仅支持 CPU 的 TensorFlow 构建一个 pip 软件包,需要调用以下命令: $ bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_AB ...

  5. facebook和twitter的截图分享

    记录一下代码,以后自己可以抄..我抄我自己=.= SDK的接入看之前的博客.所以话不多少,直接上代码(记得分享一定要安装原生app(FB和twitter),不然只通过网页分享无法发图片.),初始化都在 ...

  6. MergeSort 归并排序(java)

    MergeSort 归并排序 排序思想:1,分解待排序的n个元素为两个子列,各为n/2个元素 2,若子列没有排好序,重复1步骤,每个子列继续分解为两个子列,直至被分解的子列个数为1 3,子列元素个数为 ...

  7. Controller - 压力机的设置 - 界面图表分析

    一. Controller- 压力机界面的一下设置讲解   2种测试场景的设计和压测策略 二. Controller- 压力机界面的图表分析

  8. Java字符串分割

    java中字符串的分割函数,split("你想要分割的字符", 你想要最多分割为多少段,正整数) 注意事项: 1.分割特殊字符考虑转义字符的使用.如: . \ | 2.第二个参数: ...

  9. spring boot+mybatis+swagger搭建

    环境概述 使用的开发工具:idea 2018 3.4 环境:jdk1.8 数据库:MariaDB (10.2.21) 包管理:Maven 3.5 Web容器:Tomcat 8.0 开发机系统:Wind ...

  10. umount命令详解

    基础命令学习目录首页                                    umount 用来卸载设备 -a:卸除/etc/mtab中记录的所有文件系统: -h:显示帮助: -n:卸除 ...