PyQt5初级教程(一)
python 版qt入门级使用说明
我使用的是python3.5安装PyQt5:
- pip3 install PyQt5
可以用如下代码测试环境是否安装成功,运行成功会弹出一个窗口:
- from PyQt5 import QtWidgets, QtGui
- import sys
- app = QtWidgets.QApplication(sys.argv)
- window = QtWidgets.QWidget();
- window.show()
- sys.exit(app.exec_())
如果要像C++那样使用UI该怎么办呢?还是可以使用Qt Creater
打开Qt Creator,新建一个工程,QT -> Qt设计师界面类 -> Widget -> 保存
默认保存就好,不用管保存为form.cpp哪里,因为我们只需要form.ui这个文件
关于创建界面还是和直接在Qt中使用一样。
比如我的例子,我做一个简易界面,包含一个按钮,两个QLabel用于显示图像:编辑信号和槽,选择信号槽编辑,选中button添加监听clicked事件,槽函数我们自定义为test()。(在pushButton上点击然后往外拖动便得到一个信号槽)
然后保存,接下来把form.ui文件编译为form.py文件
到保存form.ui的目录,shift+右键,在当前路径打开控制台,执行如下命令:
- pyuic5 form.ui -o form.py
如果找不到pyuic5可执行程序,检查一下环境变量是否正确。(pyuic5是安装pyqt是安装的)
至此界面已经生成,后面就是使用form.py这个界面了
可以看看form.py的内容:
- # -*- coding: utf-8 -*-
- # Form implementation generated from reading ui file 'form.ui'
- #
- # Created by: PyQt5 UI code generator 5.10.1
- #
- # WARNING! All changes made in this file will be lost!
- from PyQt5 import QtCore, QtGui, QtWidgets
- class Ui_Form(object):
- def setupUi(self, Form):
- Form.setObjectName("Form")
- Form.resize(1420, 780)
- self.pushButton = QtWidgets.QPushButton(Form)
- self.pushButton.setGeometry(QtCore.QRect(0, 710, 141, 41))
- font = QtGui.QFont()
- font.setPointSize(12)
- self.pushButton.setFont(font)
- self.pushButton.setObjectName("pushButton")
- self.label = QtWidgets.QLabel(Form)
- self.label.setGeometry(QtCore.QRect(0, 0, 700, 700))
- font = QtGui.QFont()
- font.setPointSize(20)
- self.label.setFont(font)
- self.label.setStyleSheet("QLabel{\n"
- " border-width: 1px;\n"
- " border-style: solid;\n"
- " border-color: rgb(255, 0, 0);\n"
- "}")
- self.label.setObjectName("label")
- self.label_2 = QtWidgets.QLabel(Form)
- self.label_2.setGeometry(QtCore.QRect(710, 0, 700, 700))
- font = QtGui.QFont()
- font.setPointSize(20)
- self.label_2.setFont(font)
- self.label_2.setStyleSheet("QLabel{\n"
- " border-width: 1px;\n"
- " border-style: solid;\n"
- " border-color: rgb(0, 0, 255);\n"
- "}")
- self.label_2.setObjectName("label_2")
- self.retranslateUi(Form)
- self.pushButton.clicked.connect(Form.test)
- QtCore.QMetaObject.connectSlotsByName(Form)
- def retranslateUi(self, Form):
- _translate = QtCore.QCoreApplication.translate
- Form.setWindowTitle(_translate("Form", "Form"))
- self.pushButton.setText(_translate("Form", "选择文件夹"))
- self.label.setText(_translate("Form", "原图"))
- self.label.setAlignment(QtCore.Qt.AlignCenter) # 让字体居中,自己加的
- self.label_2.setText(_translate("Form", "结果图"))
- self.label_2.setAlignment(QtCore.Qt.AlignCenter) # 让字体居中
接下来使用Qt Creater生成的这个界面
打开这个form.py这个文件,可以看到生成了Ui_Form这个类,有一些我们添加的控件。我们只需要导入类,做初始化,然后编写自定义的槽函数就可以了。
- #coding=utf-8
- from PyQt5.QtWidgets import *
- from PyQt5 import QtWidgets,QtGui
- import os
- from form import Ui_Form #导入我们的界面文件
- class LoginDlg(QDialog,Ui_Form):
- def __init__(self, parent=None):
- super(LoginDlg, self).__init__(parent)
- self.setupUi(self)
- self.setWindowTitle("肝脏分割演示")
- # self.resize(1800, 1000)
- #获取选择文件夹路径
- def getPath(self):
- seriesPath = QFileDialog.getExistingDirectory(self,"选取文件夹","./")
- # print(seriesPath)
- return seriesPath
- def test(self): # 这个test函数就是定义UI时跟pushButton连接的那个函数,这里实现功能
- seriesPath=self.getPath()
- for _,dirs,files in os.walk(seriesPath):
- for f in files:
- if os.path.splitext(f)[1]=='.bmp':
- picPath=os.path.join(_,f)
- print(picPath)
- pic=QtGui.QPixmap(picPath)
- # pic=pic.scaled(850,850) # resize 图像大小进行显示
- self.label.setPixmap(pic)
- self.label_2.setPixmap(pic)
- # self.origin.update()
- self.label.repaint()
- self.label_2.repaint()
- # self.repaint()
- time.sleep(1) # 时间延迟1s
- if __name__=="__main__":
- import sys
- import time
- app = QtWidgets.QApplication(sys.argv)
- dlg=LoginDlg()
- dlg.show()
- sys.exit(app.exec_())
运行结果:
PyQt5初级教程(一)的更多相关文章
- Python图像处理库:Pillow 初级教程
Python图像处理库:Pillow 初级教程 2014-09-14 翻译 http://pillow.readthedocs.org/en/latest/handbook/tutorial.html ...
- shellKali Linux Web 渗透测试— 初级教程(第三课)
shellKali Linux Web 渗透测试— 初级教程(第三课) 文/玄魂 目录 shellKali Linux Web 渗透测试—初级教程(第三课) 课程目录 通过google hack寻找测 ...
- Mac OS X Terminal 101:终端使用初级教程
Mac OS X Terminal 101:终端使用初级教程 发表于 2012 年 7 月 29 日 由 Renfei Song | 文章目录 1 为什么要使用命令行/如何开启命令行? 2 初识Com ...
- Coding 初级教程(二)——上传已有项目
Coding 初级教程(二)——上传已有项目 [摘要:方针读者 :已具有 Coding.net 的账号. 本文首要先容若何把项目上传到 Coding.net 上. 分两种环境,一种是项目已归入到 gi ...
- [初级教程]用SecureCRT+Xming轻松远程实现Linux的X DISPLAY
[初级教程]用SecureCRT+Xming轻松远程实现Linux的X DISPLAY 发布者:sqqdugdu 时间:10-06 阅读数:2117 测试环境:RHEL 6.1,SecureCRT 5 ...
- Window服务初级教程以及log4net配置文件初始化
Window服务初级教程:http://www.jb51.net/article/48987.htm 另外,配置log4net这个日志功能的时候需要初始化,不然会报没有初始化的错误,而且初始化的节点应 ...
- 《自学C语言》初级教程 - 目录
我现在打算出一个C语言学习教程,目的是为了让初学者能够很容易和更深刻地理解C语言. 你可能有这样的疑问,网上不是有很多的初级教程吗,我需要这个吗?我的回答是:网上的C语言教程讲得不够全面,而且许多的初 ...
- Android初级教程理论知识(第三章测试&数据存储&界面展现)
首先介绍单元测试,我在javaweb部分有详细介绍单元测试框架的一篇文章. 可以先看在javaweb中的单元测试详解篇http://blog.csdn.net/qq_32059827/article/ ...
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
随机推荐
- 错误RSA host key for [ip address] has changed and you have requested strict checking.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS ...
- django学习~models之查询
一 简介:今天学习models查询的一些东西 二 理解概念 Queryset 定义 从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet 三 细节学习 一 常用的models函数 . ...
- java 多线程三
java 多线程一 java 多线程二 java 多线程三 java 多线程四 注意到 java 多线程一 中 MyThread2 运行结果出现0.-1,那是因为在操作共享数据时没有加锁导致. 加锁的 ...
- TeamCity 和 Nexus 的使用
参考:http://www.jianshu.com/p/255a484555d9 TeamCity 安装部署(Linux 环境) 在我讲之前,如果你英文还可以,就到官网这里看下: Installati ...
- 解决Centos下yum无法更新
问题: http://mirrors.cloud.aliyuncs.com/epel/6/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - ...
- <crtdbg.h> 的作用
1.在调试状态下让win程在输出窗口中显示调试信息,可以用_RPTn 宏n为显示参数比如_RPT0(_CRT_WARN,"text"); _RPT1(_CRT_WARN," ...
- 查看Windows版本号
1.Win+R,在运行中输入:msinfo32 2.在cmd中输入:ver 3.注册表(regedit)中:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows ...
- SCons: 替代 make 和 makefile 及 javac 的极好用的c、c++、java 构建工具
http://scons.org/ https://www.ibm.com/developerworks/cn/linux/l-cn-scons/index.html 后附:另外,WAF是一个基于sc ...
- BootStrap学习从现在开始
前言 原文链接 http://aehyok.com/Blog/Detail/6.html 当下最流行的前端开发框架Bootstrap,可大大简化网站开发过程,从而深受广大开发者的喜欢.本文总结了Boo ...
- lnmp环境下piwiki网站流量分析工具的安装及配置
piwiki统计网站的安装 Piwik是一个PHP和MySQL的开放源代码的Web统计软件. 它给你一些关于你的网站的实用统计报告,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等- Piwi ...