# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *
from util_symbol import *
'''
主工具
'''
debug = 0
class SymbolCfgWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
'''
UI布局
'''
def initUI(self):
self.symbol = None
hb = QHBoxLayout()
self.setLayout(hb)
self.setStyleSheet('''QGroupBox{
background:#DDFFFF;
border:1px solid gray;
width:300px;
border-radius:10px;
padding:4px;
text-align:center;
font:12px
}
QPushButton{
background:#77FFFF;
border-radius:10px;
border-width: 2px;
border:1px solid gray;
border-style: outset;
padding: 6px;
font:14px
}
QPushButton:disabled {
background-color: lightgray;
}
QProgressBar{
background:#AAFFFF;
border-radius:10px;
border-width: 2px;
border:0px solid gray;
border-style: outset;
color:#000000;
padding: 6px;
font:16px;
text-align: center;
}
QProgressBar:chunk {
background-color: #33FFFF;
border-radius:10px;
}
QLCDNumber {
background-color: #77FFFF;
border-radius:10px;
color:#000000;
font-weight: bold;
}''')
'''
工程设置
'''
settingsGroup = QGroupBox('Settings')
hb.addWidget(settingsGroup, 2)
vb = QVBoxLayout()
settingsGroup.setLayout(vb)
symbolGroup = QGroupBox('Symbol Setting')
vb.addWidget(symbolGroup)
gd_prj_set = QGridLayout()
symbolGroup.setLayout(gd_prj_set)
gd_prj_set.addWidget(QLabel('IC Mark:'), 0, 0)
let_ic_mark = QLineEdit('IC Mark')
let_ic_mark.setMaxLength(20)
ft = let_ic_mark.font()
ft.setPointSize(ft.pointSize() + 2)
let_ic_mark.setFont(ft)
gd_prj_set.addWidget(let_ic_mark, 0, 1, 1, 3)
gd_prj_set.addWidget(QLabel('Pin Num:'), 1, 0)
sb_pin_num = QSpinBox()
sb_pin_num.setRange(2, 10)
sb_pin_num.setSingleStep(1)
sb_pin_num.setValue(2)
sb_pin_num.setAlignment(Qt.AlignRight)
gd_prj_set.addWidget(sb_pin_num, 1, 1, 1, 3)
btn_Gen = QPushButton("Generate")
gd_prj_set.addWidget(btn_Gen, 2, 0, 4, 4)
'''
参数设置
'''
parGroup = QGroupBox('Parameter Setting')
gd_par_set = QGridLayout()
parGroup.setLayout(gd_par_set)
vb.addWidget(parGroup)
vb.addStretch()
gd_par_set.addWidget(QLabel('Type'), 0, 1, Qt.AlignmentFlag.AlignCenter)
gd_par_set.addWidget(QLabel('Min'), 0, 2, Qt.AlignmentFlag.AlignCenter)
gd_par_set.addWidget(QLabel('Max'), 0, 3, Qt.AlignmentFlag.AlignCenter)
gd_par_set.addWidget(QLabel('Vin(V):'), 1, 0)
let_vin_type = QLineEdit()
gd_par_set.addWidget(let_vin_type, 1, 1, 1, 1)
let_vin_min = QLineEdit()
gd_par_set.addWidget(let_vin_min, 1, 2, 1, 1)
let_vin_max = QLineEdit()
gd_par_set.addWidget(let_vin_max, 1, 3, 1, 1)
gd_par_set.addWidget(QLabel('Ven(V):'), 2, 0)
let_ven_type = QLineEdit()
gd_par_set.addWidget(let_ven_type, 2, 1, 1, 1)
let_ven_min = QLineEdit()
gd_par_set.addWidget(let_ven_min, 2, 2, 1, 1)
let_ven_max = QLineEdit()
gd_par_set.addWidget(let_ven_max, 2, 3, 1, 1)
gd_par_set.addWidget(QLabel('Iout(mA):'), 3, 0)
let_iout_type = QLineEdit()
gd_par_set.addWidget(let_iout_type, 3, 1, 1, 1)
let_iout_min = QLineEdit()
gd_par_set.addWidget(let_iout_min, 3, 2, 1, 1)
let_iout_max = QLineEdit()
gd_par_set.addWidget(let_iout_max, 3, 3, 1, 1)
'''
Symbol Preview
'''
symbolGroup = QGroupBox('Symbol Preview')
hb.addWidget(symbolGroup, 5)
vb = QVBoxLayout()
symbolGroup.setLayout(vb)
pn_array = ["IN", "EN", "GND", "OUT"]
self.symbol = Symbol_DFN(2, let_ic_mark.text(), pn_array)
vb.addWidget(self.symbol)
'''
更新频率
'''
def onBtnClicked():
pn_array = ["IN", "BIAS", "EN", "SS", "GND", "PG", "FB", "OUT", "P9", "P10",
"P11", "P12", "P13", "P14", "P15", "P16", "P17", "P18", "P19", "P20",
"P21", "P22", "P23", "P24", "P25", "P26", "P27", "P28", "P29", "P30",
"P31", "P32", "P33", "P34", "P35", "P36", "P37", "P38", "P39", "P40",
"P41", "P42", "P43", "P44", "P45", "P46", "P47", "P48", "P49", "P50",
"P51", "P52", "P53", "P54", "P55", "P56", "P57", "P58", "P59", "P60"]
vb.removeWidget(self.symbol)
self.symbol = Symbol_DFN(sb_pin_num.value(), let_ic_mark.text(), pn_array)
vb.addWidget(self.symbol)
btn_Gen.clicked.connect(onBtnClicked)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = SymbolCfgWidget()
win.setWindowTitle("Symbol Config")
win.setWindowIcon(QIcon('res\\logo.png'))
win.resize(1280, 800)
win.show()
sys.exit(app.exec_())
python之symbolCfg
最新推荐文章于 2024-09-14 19:55:48 发布