py QScrollArea

本文介绍了一个使用PyQt5进行GUI开发的例子,并详细展示了如何配置和使用Python的日志模块来记录应用程序运行过程中的信息。此外,还涉及了如何通过GUI选择文件并解析JSON数据,最后将数据发送到服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
import json
import logging
import sys

import requests
from PyQt5 import QtWidgets
from ReqSendXXX import *

'''===== [logg] .xu =============================================='''
# -*- coding: utf-8 -*-
import logging
import sys
import os
from myUtil import Properties


print('########[agreementSign]################ * start')

properties = Properties("./myglobal.properties").getProperties()

# 获取logger实例,如果参数为空则返回root logger
log = logging.getLogger("AppName")
# 指定logger输出格式
formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')
# 文件日志
file_handler = logging.FileHandler(os.path.basename(__file__)+".log")
file_handler.setFormatter(formatter) # 可以通过setFormatter指定输出格式
# 控制台日志
console_handler = logging.StreamHandler(sys.stdout)
console_handler.formatter = formatter # 也可以直接给formatter赋值
# 为logger添加的日志处理器
log.addHandler(file_handler)
log.addHandler(console_handler)
# 指定日志的最低输出级别,默认为WARN级别
log.setLevel(logging.DEBUG)


class MyClass:
# 初始化
def __init__(self):
print("=====>def: " , "def")


myClass = MyClass()


# def data1():
# with open('./Tes1FormRun.json', encoding='utf-8') as json_file:
# data = json.load(json_file)
# return data

from PyQt5.QtWidgets import QFileDialog


from Tes1Form2 import Ui_ScrollArea # 导入生成form.py里生成的类
class mywindow(QtWidgets.QScrollArea, Ui_ScrollArea):

def __init__(self):
super(mywindow,self).__init__()
self.setupUi(self)

def tes1(self):
print("=====>self: " , "self")
try:
fileName1, filetype = QFileDialog.getOpenFileName(self,
"选取文件",
"./",
"All Files (*.json);;Text Files (*.txt)") # 设置文件扩展名过滤,注意用双分号间隔
print(fileName1, filetype)
log.warn(filetype)
log.warn(fileName1)

def data1():
with open(fileName1, encoding='utf-8') as json_file:
data = json.load(json_file)
return data

log.warn(data1())


# self.textEdit.setText("")

myClassVVVV = MyClass()
myClassJsonVVV = json.dumps(data1(), sort_keys=True, indent=2, ensure_ascii=False)
log.warn(myClassJsonVVV)
log.warn("myClassJsonVVV")

self.textEdit.setText(myClassJsonVVV)
# self.textEdit.setPlainText(myClassJsonVVV)
textEditV=self.textEdit.toPlainText()
log.warn(textEditV)
# tesSaveJson()
# urlv=properties['addRenewalInfo']
# print("=====>urlv: " , urlv)
#
# myClassDict = myClassnew.__dict__
myClassJsonMV = json.dumps(textEditV)
log.warn("myClassJsonMV2222222222")
log.warn(myClassJsonMV)

myClassJson = json.dumps(myClassJsonMV, sort_keys=True, indent=2, ensure_ascii=False)
myClassLoads = json.loads(myClassJson)
log.warn(myClassLoads)
log.warn("========================")
log.warn(myClassJsonVVV)
r1 = requests.post("http://www.nbybt.cn:8080/ybquery/medicare/getMedicareCard", data=myClassLoads, headers=headers)
r1.encoding = 'utf-8'
r1Text = json.dumps(json.loads(r1.text), sort_keys=True, indent=2, ensure_ascii=False)
log.debug('【响应】\n' + r1Text)



# r1Texvt = reqSend(data1(), "http://www.nbybt.cn:8080/ybquery/medicare/getMedicareCard",log)
# log.warn(r1Texvt)

# r1Text = reqSend(myClassJsonMV, "http://www.nbybt.cn:8080/ybquery/medicare/getMedicareCard",log)
# log.warn(r1Text)
# myClassDict = myClassnew.__dict__
# myClassJson = json.dumps(myClassDict, sort_keys=True, indent=2, ensure_ascii=False)
# self.textEdit_2.setText(r1Text)
except:
log.warn("except")
pass

def tesSaveJson(self):
print("=====>self: " , "self")
try:
log.warn("tesSaveJson")
# tesSaveJson()
# urlv=properties['addRenewalInfo']
# print("=====>urlv: " , urlv)
#
# r1Text = reqSend("", "http://www.nbybt.cn:8080/ybquery/medicare/getMedicareCard",log)
# log.warn(r1Text)
# myClassDict = myClassnew.__dict__
# myClassJson = json.dumps(myClassDict, sort_keys=True, indent=2, ensure_ascii=False)
# self.textEdit_2.setText(r1Text)
except:
pass


def fileUrl(self):
print("=====>self: " , "self")
try:
# tesSaveJson()
log.warn("tesSaveJson")
# urlv=properties['addRenewalInfo']
# print("=====>urlv: " , urlv)
#
# r1Text = reqSend("", "http://www.nbybt.cn:8080/ybquery/medicare/getMedicareCard",log)
# log.warn(r1Text)
# myClassDict = myClassnew.__dict__
# myClassJson = json.dumps(myClassDict, sort_keys=True, indent=2, ensure_ascii=False)
# self.textEdit_2.setText(r1Text)
except:
pass


app = QtWidgets.QApplication(sys.argv)
window = mywindow()
window.show()
sys.exit(app.exec_())

 

================

 

 

# -*- coding: utf-8 -*-
import json
import logging
import sys

import requests
from PyQt5 import QtWidgets
from ReqSendXXX import *

'''===== [logg] .xu =============================================='''
# -*- coding: utf-8 -*-
import logging
import sys
import os
# 获取logger实例,如果参数为空则返回root logger
log = logging.getLogger("AppName")
# 指定logger输出格式
formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')
# 文件日志
file_handler = logging.FileHandler(os.path.basename(__file__)+".log")
file_handler.setFormatter(formatter) # 可以通过setFormatter指定输出格式
# 控制台日志
console_handler = logging.StreamHandler(sys.stdout)
console_handler.formatter = formatter # 也可以直接给formatter赋值
# 为logger添加的日志处理器
log.addHandler(file_handler)
log.addHandler(console_handler)
# 指定日志的最低输出级别,默认为WARN级别
log.setLevel(logging.DEBUG)


class MyClass:
# 初始化
def __init__(self):
print("=====>def: " , "def")


myClass = MyClass()

from aztemplate import Ui_AzScrollArea # 导入生成form.py里生成的类
class mywindow(QtWidgets.QScrollArea, Ui_AzScrollArea):

def __init__(self):
super(mywindow,self).__init__()
self.setupUi(self)

def p1local(self):
print("=====>self: " , "self")
try:
url=self.lineEdit.text()
myClassnew=self.textEdit.
myClassnew=self.textEdit.text()
log.warn(myClassnew)
r1Text = reqSend(myClassnew, url,log)
log.warn(r1Text)
# myClassDict = myClassnew.__dict__
# myClassJson = json.dumps(myClassDict, sort_keys=True, indent=2, ensure_ascii=False)
# self.textEdit_2.setText(r1Text)
except:

pass


app = QtWidgets.QApplication(sys.argv)
window = mywindow()
window.show()
sys.exit(app.exec_())

 

 

def bcs(params):
return ';'.join(['%s=%s' % (k,v) for k,v in params.items()])

转载于:https://www.cnblogs.com/rhxuza1993/p/9239647.html

使用cx_Freeze写一个打包成mac,windows的脚本。目录结构为,在本工程目录下有detail_page.py,server_manager.py(入口文件),ssh_manger.py ,resource(这是一个文件夹,下面有几个文件,这几个文件那三个python文件会用到) import sys import re import json import os import base64 import hashlib import logging import shutil from threading import Thread, Event from PyQt5.QtWidgets import ( QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QTableWidget, QTableWidgetItem, QDialog, QLineEdit, QLabel, QFormLayout, QMessageBox, QHeaderView, QInputDialog, QGridLayout, QGroupBox, QScrollArea, QProgressDialog, QTabWidget, QTabBar ) from PyQt5.QtCore import Qt, QThread, pyqtSignal from PyQt5.QtGui import QFont, QIcon, QFontMetrics import time import detail_page import ssh_manger import sys import os import time import json import threading import base64 import hashlib import shutil import subprocess import psutil import logging # 添加日志模块 from datetime import datetime from PyQt5.QtWidgets import ( QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QProgressBar, QTableWidget, QTableWidgetItem, QHeaderView, QTextEdit, QPushButton, QSplitter, QListWidget, QGroupBox, QScrollArea, QMessageBox, QComboBox, QAbstractItemView, QSizePolicy, QFileDialog, QProgressDialog ) from PyQt5.QtCore import Qt, QTimer, QThread, pyqtSignal, QObject from PyQt5.QtGui import QFont, QColor, QBrush, QIcon, QPainter import ssh_manger import re import paramiko from threading import Thread, Event import time import os import stat import logging import socket import random 这是引入的库
最新发布
07-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值