您的位置:首页 > Web前端 > JavaScript

tab切换页面+cookie跳过登录页面+json解析+tree Weight绑定json数据

2017-12-05 10:17 393 查看
def setupUi(self, Dialog):
#信号槽--切换tab事件
self.tabWidget.currentChanged.connect(self.tabChangedSlot)

def tabChangedSlot(self, argTabIndex):
print(argTabIndex)
###############################
if argTabIndex == 0:
print('0000000000000')
# 设置保存cookie的文件,同级目录下的cookie.txt
filename = 'cookie.txt'
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = http.cookiejar.MozillaCookieJar(filename)
# 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib.request.HTTPCookieProcessor(cookie)
# 通过handler来构建opener
opener = urllib.request.build_opener(handler)

# 创建一个请求,原理同urllib2的urlopen
response = opener.open('http://********:8080/******/userLogin.action?username=***&password=***')
# 保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)
# 3)从文件中获取Cookie并访问
# 创建MozillaCookieJar实例对象
cookieRead = http.cookiejar.MozillaCookieJar()
# 从文件中读取cookie内容到变量
cookieRead.load('cookie.txt', ignore_discard=True, ignore_expires=True)
# 创建请求的request
req = urllib.request.Request('http://******:8080/*****/***.action')
# 利用urllib2的build_opener方法创建一个opener
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookieRead))
result = opener.open(req)
d = result.read().decode('utf-8')  # 处理中文乱码
data = json.loads(d)  # 处理json字符串转化为字典
print(data)
# print(data['rtStatus'])
# 判断
# if data['rtStatus'] != true: return;
self.treeWidget.clear()

# 计算树的数量
num_rtData = 0;
for aa in data['rtData']:
num_rtData = num_rtData + 1;

# 省级节点
for i in range(num_rtData):

root = QTreeWidgetItem(self.treeWidget)
print(str(data["rtData"][i]["proviceInfo"]["area_name"]))
root.setText(0, str(data["rtData"][i]["proviceInfo"]["area_name"]))

# 市级节点
citylist_counter = 0;
for aa in data["rtData"][i]["cityList"]:
citylist_counter = citylist_counter + 1;

for j in range(citylist_counter):
child_city = QTreeWidgetItem(root)
print(str(data["rtData"][i]["cityList"][j]["cityInfo"]["area_name"]))
child_city.setText(0, str(data["rtData"][i]["cityList"][j]["cityInfo"]["area_name"]))

# 县级节点
arealist_counter = 0;
for aa in data["rtData"][i]["cityList"][j]["areaList"]:
arealist_counter = arealist_counter + 1;

for k in range(arealist_counter):
child_area = QTreeWidgetItem(child_city)
print(str(data["rtData"][i]["cityList"][j]["areaList"][k]["areaInfo"]["area_name"]))
child_area.setText(0, str(data["rtData"][i]["cityList"][j]["areaList"][k]["areaInfo"]["area_name"]))

# 摄像头节点
cameraList_counter = 0;
# 判断
if data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"] != None:
for aa in data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"]:
cameraList_counter = cameraList_counter + 1;

print(cameraList_counter)
if cameraList_counter != 0:
for m in range(cameraList_counter):
child_camera = QTreeWidgetItem(child_area)
print(str(data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"][m]["name"]))
child_camera.setText(0, str(data["rtData"][i]["cityList"][j]["areaList"][k]["cameraList"][m]["name"]))

###############################
elif argTabIndex == 1:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python pyqt
相关文章推荐