55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
|
|
|||
|
#!/usr/bin/env python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
'''
|
|||
|
@resource:none
|
|||
|
@description: 1. exec()执行动态生成控件 //关闭程序时把model类型保存到ini文件中,打开时生成model对象.
|
|||
|
@Created on 2018年3月17日
|
|||
|
@email: 625781186@qq.com
|
|||
|
'''
|
|||
|
|
|||
|
from PyQt5 import QtGui, QtWidgets, QtCore
|
|||
|
from PyQt5.QtCore import *
|
|||
|
from PyQt5.QtGui import *
|
|||
|
from PyQt5.QtWidgets import *
|
|||
|
from PyQt5.QtCore import pyqtSlot
|
|||
|
from PyQt5.QtWidgets import QDialog
|
|||
|
from PyQt5.QtSql import *
|
|||
|
import re
|
|||
|
|
|||
|
|
|||
|
from Ui_getModel import Ui_Dialog
|
|||
|
|
|||
|
|
|||
|
class Dialog(QDialog, Ui_Dialog):
|
|||
|
"""
|
|||
|
Class documentation goes here.
|
|||
|
"""
|
|||
|
def __init__(self, parent=None):
|
|||
|
super(Dialog, self).__init__(parent)
|
|||
|
self.setupUi(self)
|
|||
|
self.setting=QSettings('./setting.ini', QSettings.IniFormat)
|
|||
|
self.getModel()
|
|||
|
self.tableView.setModel(self.qmodel)
|
|||
|
|
|||
|
print('1:', self.tableView.model())
|
|||
|
def closeEvent(self, e):
|
|||
|
text=re.split('\.| ', str(self.tableView.model()))
|
|||
|
if text != ['None']:
|
|||
|
i=[i for i, x in enumerate(text) if x.find('Model')!=-1]
|
|||
|
# print(text[i[-1]])
|
|||
|
self.setting.setValue("Model/model",text[i[-1]]+'()');#设置key和value,也就是参数和值
|
|||
|
def getModel(self):
|
|||
|
if(self.setting.contains("Model/model")): #此节点是否存在该数据
|
|||
|
model = self.setting.value("Model/model")
|
|||
|
exec('''self.qmodel=%s'''%(model))#python exec()执行字符串命令
|
|||
|
print('2:', self.qmodel)
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
import sys
|
|||
|
app = QtWidgets.QApplication(sys.argv)
|
|||
|
|
|||
|
ui = Dialog()
|
|||
|
|
|||
|
ui.show()
|
|||
|
sys.exit(app.exec_())
|