基于PyQT的小工具框架

主界面

你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

环境

    Windows 10 
    Python 3.7.5
    PyQT5

工程源码

https://github.com/ihad-zw/gpspro.git

功能描述

  1. GPS原始数据中经度、维度、高程数据的提取;
  2. log数据的显示和保存

依赖环境

pip install PyQt5
pip install pyqt5-tools

界面设计工具

designer

界面代码生产

1、主界面

pyuic5 -o mainwindow.py mainwindow.ui

2、资源文件

pyrcc5 -o mainwindow_rsc.py mainwindows_rsc.qrc

main

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
import threading
import time;
import datetime;
import traceback;
import logging
from PyQt5 import QtWidgets
from qt.mainui import MainUI
from queue import Queue

from qt.log import LOG_PRINTF

from app.getgps import GetGPS

APP_NAME='imgacctest'

class MainThread:
    def __init__(self,mtq,qtq):
        self.mtq=mtq
        self.qtq=qtq

    def _cmd_start(self,data):
        LOG_PRINTF("[start]")
        qmsg = {'cmd':'progress',"data":10}
        self.qtq.put(qmsg)
        inFiles=data['inFiles']
        ouFiles=data['ouFiles']
        datatype = data['datatype']

        LOG_PRINTF("inFiles: " + inFiles)
        LOG_PRINTF("ouFiles: " + ouFiles)
        LOG_PRINTF("datatype: " + datatype)

        #extern interface add
        try:
            mm =GetGPS ();
            mm.run(inFiles,ouFiles,datatype)
        except:
            traceback.print_exc()

        time.sleep(1)
        qmsg.clear()
        qmsg = {'cmd': 'progress', "data": 99}
        self.qtq.put(qmsg)
        time.sleep(1)
        qmsg.clear()
        qmsg = {'cmd': 'finish'}
        self.qtq.put(qmsg)
        LOG_PRINTF("[finish]")

    def _cmd_close(self):
        print('_cmd_close')

    def run_thread(self):

        while True:
            if not self.mtq.empty():
                msg = self.mtq.get()
                if len(msg) > 0:
                    print('MainThread:',msg)
                    if msg['cmd'] == 'start':

                        self.th_run = threading.Thread(target=self._cmd_start, name="_cmd_start",args=(msg,))
                        self.th_run.setDaemon(True)
                        self.th_run.start()

                    elif msg['cmd'] == 'close':
                        self._cmd_close();

            else:
                time.sleep(1);

    def start(self):
        self.th_run = threading.Thread(target=self.run_thread, name="run_thread")
        self.th_run.setDaemon(True)
        self.th_run.start()


def run():


    mtq = Queue(100)
    qtq = Queue(100)

    mtobj=MainThread(mtq,qtq)
    mtobj.start();

    app = QtWidgets.QApplication(sys.argv)
    mmui=MainUI(mtq,qtq)
    mmui.show()
    #mmui.start()
    sys.exit(app.exec_())



def init():
    #format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    logdir=r'f:\log'
    logfile=None

    now_time = datetime.datetime.now()
    time1_str = datetime.datetime.strftime(now_time, '%Y%m%dT%H%M%S')

    logfilename='log_'+APP_NAME+'_'+time1_str+'.txt'

    if os.path.exists(logdir):
        logfile=os.path.join(logdir,logfilename)
    else:
        logfile=logfilename

    logger = logging.getLogger()  # 不加名称设置root logger
    logging.basicConfig(level=logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    # 使用FileHandler输出到文件
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s: - %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S')

    fh = logging.FileHandler(logfile)
    fh.setLevel(logging.DEBUG)
    fh.setFormatter(formatter)

    # 使用StreamHandler输出到屏幕
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
    ch.setFormatter(formatter)

    # 添加两个Handler
    logger.addHandler(ch)
    logger.addHandler(fh)


if __name__ == '__main__':
    init();
    run()




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值