gps原始資料中經度、維度、高程資料的提取;
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
#!/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
'imgacctest'
class
mainthread
:def
__init__
(self,mtq,qtq)
: self.mtq=mtq
self.qtq=qtq
def_cmd_start
(self,data)
: log_printf(
"[start]"
) qmsg =
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 inte***ce add
try:
mm =getgps ();
mm.run(infiles,oufiles,datatype)
except
: traceback.print_exc(
) time.sleep(1)
qmsg.clear(
) qmsg =
self.qtq.put(qmsg)
time.sleep(1)
qmsg.clear(
) qmsg =
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();
mmui=mainui(mtq,qtq)
mmui.show(
)#mmui.start()))
definit()
:#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_'
'_'+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(
)
flex開發 框架 vs 小工具
經過最近半年的專案實踐,我一直在思考,框架 vs 小工具兩種開發方式。雖然目前專案用了parsley框架,但目前我在慢慢淡化其作用。更多的通過一些小的通用工具在組織整個專案。用ui框架來裝配介面。用乙個簡單serviceutils來與server端通訊。用乙個通用可配置的 查詢 分頁顯示介面 來做查...
基於Python的自製畫板小工具
本系統的軟體開發及執行環境具體如下。作業系統 windows 7 windows 10。python版本 python 3.7.1。開發工具 pycharm 2018。python內建模組 os sys time math。第三方模組 pygame。注意 在使用第三方模組時,首先需要使用pip in...
PyQt5簡單小工具製作步驟
學了幾個月的python了,突然想做點自己的工具,想起自己以前用qt寫c 的gui的時候,記得用pyqt可以寫gui,就學了一周。把基本的東西都看了一遍,感覺和qt差不多!但是pyqt5 的中文資料少的可憐啊!如果又想學的朋友可以參考下我的這個小工具製作過程!先看 import sys from p...