昨天想着用 Python 写个展示的 demo,之前打算熟悉一下 PyQt ,正好边学边做,学以致用。

主要的流程是在 cmd 下运行 .exe 并读取输出结果,运到的困难是如何实时回传数据以及修改图片大小并显示(缩放到固定大小)。

以下是代码,只展示框架,部分参数未设置。基于 Python3 + PyQt5

import os
import time
import sys
import subprocess
from configparser import ConfigParser
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import * class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.command = ""
self.inipath = r""
self.cf = ConfigParser()
self.cf.read(self.inipath) main_ground = QWidget()
self.setCentralWidget(main_ground) grid = QGridLayout()
grid.setSpacing(10) self.title = QLabel('Result',self)
self.titleEdit = QLineEdit(self)
self.label = QLabel("photo",self) self.title.setGeometry(30,30,50,25)
self.title.setFont(QFont('SansSerif', 12)) """
grid.addWidget(self.title,1,0)
grid.addWidget(self.titleEdit,1,1)
grid.addWidget(self.label,2,0,5,5)
main_ground.setLayout(grid)
""" self.statusBar()
QAction()
QAction.triggered.connect() menubar = self.menuBar()
RunMenu = menubar.addMenu('&Run')
RunMenu.addAction()
EditMenu = menubar.addMenu('&Edit')
EditMenu.addAction() self.setGeometry(300, 300, 740, 480)
self.setWindowTitle('VehicleDetect')
#self.setWindowFlags(Qt.WindowMinimizeButtonHint) #禁止调整窗口大小
self.setFixedSize(self.width(), self.height())
self.show() def Action(self):
self.cf.set()
self.cf.write(open(self.inipath,'w'))
self.showDialog()
if self.fname[0]:
self.command = ''
subprocess.call(self.command)
print("\n",end = "")
return def showDialog(self):
self.fname = QFileDialog.getOpenFileName(self, 'Open file', r'D:\')
return def update_item_data(self,data):
self.titleEdit.setText(data)
ResultPath = r''
imglist = os.listdir(ResultPath)
if int(data):
imgshow = os.path.join(ResultPath,imglist[-1])
image = QImage()
image.load(imgshow)
#self.label.setPixmap(QPixmap(imgshow))
self.label.setPixmap(QPixmap.fromImage(image).scaled(self.label.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation)); class UpdateData(QThread):
data = pyqtSignal(str)
cnt = 0
def run(self):
while(True):
cnt = len(os.listdir(r''))
self.data.emit(str(cnt))
time.sleep(1) if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example() update_thread = UpdateData()
update_thread.data.connect(ex.update_item_data)
update_thread.start() sys.exit(app.exec_())

  

[python] 初识 PyQt5的更多相关文章

  1. python初识(二)

    目录: 进制 基本数据类型 整形 布尔值 字符串 列表 元祖 字典 集合 range & enumerate 一.进制 二进制转换十进制计算: 十进制:==47 一个字节公式:==128 64 ...

  2. 小学生绞尽脑汁也学不会的python(初识面对对象)

    小学生绞尽脑汁也学不会的python(初识面对对象) 一. 面向对象思想 1. 面向过程. 重点在"过程". 按照实物的发展流程. 先干嘛,后干嘛, 最后干嘛.... 优点: 简单 ...

  3. Python 入门【一】Python 初识及学习资料

    Python 初识及学习路线: CodeCademy Python 在线教学: 廖雪峰 Python 2.7 教程: 廖雪峰 Python 3.0 教程: Python 官方文档(2.7~3.7:英文 ...

  4. Python初识类与对象

    Python初识类与对象 类与对象 世界观角度分析类与对象 类是一个抽象的概念,而对象是一个实体的存在,对象由类创造而出,每个对象之间互相独立互不影响,一个对象可以同时拥有多个类的方法,实例化就是通过 ...

  5. Python初识函数

    Python初识函数 函数理论篇 什么是函数 在编程语言中的函数不同于数学中的函数.不管是数学上的函数还是编程语言中的函数都是为了完成特定的某一功能而诞生的,他们的区别在于: 1.数学中的函数当输入的 ...

  6. Python初识与简介【开篇】

    目录 1.扯淡 2.Python历史 3.Python简介 4.Python应用 5.为什么是python而不是其他语言? 6.Python的种类 7.Python的特点 8.Python设计哲学 9 ...

  7. Python初识文本基本操作

    初识文本的基本操作 怎么在文件里面写内容和都内容 文件操作过程 1,找到文件 文件路径 2,打开文件 file_obj=file(文件路径,模式) 3,文件操作,读写文件 file_obj.read( ...

  8. python初识-day2

    1.模块初识 python中的库包括标准库和第三方库,需要使用时可直接导入,导入格式为"import  库模块",例如: import sys #sys为python的标准库 pr ...

  9. python - 初识面向对象

    1.初识面向对象       面向过程:一切以事务的发展流程为中心           优点:负责的问题流程化,编写相对简单         缺点:可扩展性差,只能解决一个问题,改造也会很困难,牵一发 ...

随机推荐

  1. http协议。会话控制cookie、session

    http协议是无状态的协议.每次访问页面的http协议都是独立的,正是因为http协议是无状态的,所以导致访问一个页面后再去访问另一个页面的时候,一些数据会消失,比如:用户的登录信息就会消失.那么怎么 ...

  2. 洛谷P2796 Facer的程序

    洛谷题目链接 动态规划 我们看题目后知道这是一棵无根树,要求出有多少子树 我们设$f[u][1]$表示选了当前节点$u$的方案数 相反的$f[u][0]$则为不选中$u$ 那么考虑状态转移如下: f[ ...

  3. 小米oj 有多少个公差为2的等差数列

     有多少个公差为 2 的等差数列 序号:#31难度:有挑战时间限制:1000ms内存限制:10M 描述 给出一个正整数N(2<= N <=10000000),统计有多少公差为2的正整数等差 ...

  4. jQuery系列(十一):jQuery的事件绑定和解绑

    1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type (String) : 事件类型 data ( ...

  5. Java 面试题 三 <JavaWeb应用调优线程池 JVM原理及调优>

    1.Java Web应用调优线程池 不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求.线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的.本文由浅入深,介 ...

  6. [Shell] 分隔字符串为数组

    #!/bin/bash tmp="test,girl,boy,love" OLD_IFS="$IFS" IFS="," arr=($a) I ...

  7. IP地址正则表达式的写法

    IP地址的正则表达式写法 这里讲的是IPv4的地址格式,总长度 32位=4段*8位,每段之间用.分割, 每段都是0-255之间的十进制数值. 将0-255用正则表达式表示,可以分成一下几块来分别考虑: ...

  8. python_glob模块的使用

    glob是Python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符, ...

  9. Beta冲刺(1/4)

    队名:福大帮 组长博客链接: https://www.cnblogs.com/mhq-mhq/p/11990568.html 作业博客 : https://edu.cnblogs.com/campus ...

  10. window 定时任务小项目,每秒钟,每分钟访问url

    个人百度网盘中 链接: https://pan.baidu.com/s/15sK2H-OtrAkAYcXjsxwihA 提取码: awv3 复制这段内容后打开百度网盘手机App,操作更方便哦