基於PyQT的小工具框架

2021-10-19 12:50:40 字數 4253 閱讀 1193

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...