1. exec()执行动态生成控件 //关闭程序时把model类型保存到ini文件中,打开时生成model对象.
This commit is contained in:
parent
b077fec983
commit
9536061054
1 changed files with 55 additions and 0 deletions
55
partner_625781186/1.exec动态生成控件/1.动态生成.py
Normal file
55
partner_625781186/1.exec动态生成控件/1.动态生成.py
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
|
||||||
|
#!/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_())
|
Loading…
Reference in a new issue