# coding:utf-8
import maya.cmds as mc
import sys
import copy
import json
from PySide2.QtWidgets import *
from PySide2.QtCore import *
from PySide2.QtGui import *
sys.path.append(u'C:/Users/Administrator/Documents/maya/2017/scripts/PlayBlast/')
import playBlastClass
class ATlistItem(QWidget):
def __init__(self):
super(ATlistItem, self).__init__()
self.mylabel = QLabel('None')
self.mylabel.setMaximumSize(250, 50)
self.myCB = QCheckBox()
self.myCB.setCheckState(Qt.Checked)
self.myCB.setMaximumSize(50, 50)
self.resize(200, 50)
self.main_layout = QHBoxLayout()
self.setLayout(self.main_layout)
self.main_layout.setContentsMargins(1, 0, 0, 1)
self.main_layout.addWidget(self.myCB)
self.main_layout.addWidget(self.mylabel)
self.main_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Fixed))
def chengeLabel(self, tex):
self.mylabel.setText(tex)
self.mylabel.setToolTip(tex)
class ListShow(QWidget):
def __init__(self):
super(ListShow, self).__init__()
self.setStyleSheet(u"background-color:rgb(30,30,30);font-size:13px;color:gray")
self.mylist = QListWidget(self)
# self.myFirstWidget = QWidget(self)
# self.myFirstWidget.setMaximumSize(900,30)
# self.myFirstWidget.setStyleSheet("background-color:rgb(30,30,30);font-size:13px;color:red")#transparent
# self.mylist.setFixedSize(600,300)
self.mylist.setAutoScroll(True)
self.main_layout = QVBoxLayout()
self.setLayout(self.main_layout)
self.main_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Fixed, QSizePolicy.Fixed))
self.main_layout.addWidget(self.mylist)
self.main_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Fixed, QSizePolicy.Fixed))
def add_WidgetItem(self, widget):
'''
添加列表项
'''
tempitem = QListWidgetItem()
self.mylist.addItem(tempitem)
self.mylist.setItemWidget(tempitem, widget)
def add_Item(self, tex):
'''
添加list列表的首行说明文字用
'''
tempitem = QListWidgetItem(tex)
self.mylist.addItem(tempitem)
def paintEvent(self, event):
p = QPainter()
p.begin(self)
p.setPen(Qt.NoPen)
p.setBrush(QBrush(QColor(50, 50, 50, 255)))
p.drawRect(self.rect())
p.end()
class TooLBar(QWidget):
def __init__(self):
super(TooLBar, self).__init__()
# self.setFixedSize(400, 350)
self.battonList = []
self.setStyleSheet(u"background-color:rgb(30,30,30);font-size:13px;color:gray")
self.setLayoutDirection(Qt.RightToLeft)
self.main_layout = QVBoxLayout()
self.setLayout(self.main_layout)
def add_button(self, buttonNam, label, w, h):
templist = [buttonNam, label, w, h]
self.battonList.append(templist)
def gen_button(self, ind):
self.battonList[ind][0] = QPushButton()
self.battonList[ind][0].setText(self.battonList[ind][1])
self.battonList[ind][0].setFixedSize(self.battonList[ind][2], self.battonList[ind][3])
self.main_layout.addWidget(self.battonList[ind][0])
def add_spacer(self, w, h, wRule=QSizePolicy.Fixed, hRule=QSizePolicy.Fixed):
tempSpacer = QSpacerItem(w, h, wRule, hRule)
self.main_layout.addSpacerItem(tempSpacer)
def paintEvent(self, event):
p = QPainter()
p.begin(self)
p.setPen(Qt.NoPen)
p.setBrush(QBrush(QColor(50, 50, 50, 255)))
p.drawRect(self.rect())
p.end()
class AT_UI(QWidget):
def __init__(self):
super(AT_UI, self).__init__()
self.setFixedSize(1400, 380)
self.mylist = ListShow()
self.mylistItems = []
self.mytoolbar = TooLBar()
self.mytoolbar.add_button('AT1', u'开始传递', 140, 90)
self.mytoolbar.setFixedSize(200, 370)
self.mytoolbar.add_spacer(10, 20, QSizePolicy.Expanding, QSizePolicy.Fixed)
self.mytoolbar.gen_button(0)
self.mytoolbar.add_spacer(10, 10, QSizePolicy.Expanding, QSizePolicy.Fixed)
self.main_layout = QHBoxLayout()
self.setLayout(self.main_layout)
self.main_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Fixed, QSizePolicy.Fixed))
self.main_layout.addWidget(self.mylist)
self.main_layout.addSpacerItem(QSpacerItem(10, 1, QSizePolicy.Fixed, QSizePolicy.Fixed))
self.main_layout.addWidget(self.mytoolbar)
self.main_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Fixed, QSizePolicy.Fixed))
def updateList(self, list):
self.mylistItems.extend(list)
for i in range(len(list)):
self.mylistItems[i] = ATlistItem()
self.mylistItems[i].chengeLabel(list[i])
self.mylist.add_WidgetItem(self.mylistItems[i])
def callBack(self, list):
templist = copy.deepcopy(list)
for j in range(len(list)):
if not self.mylistItems[j].myCB.isChecked():
templist.remove(list[j])
return templist
def paintEvent(self, event):
p = QPainter()
p.begin(self)
p.setPen(Qt.NoPen)
p.setBrush(QBrush(QColor(50, 50, 50, 255)))
p.drawRect(self.rect())
p.end()
class MyWin(QWidget):
def __init__(self):
super(MyWin, self).__init__()
self.setWindowTitle('dick')
self.resize(800, 500)
self.AllData = {}
self.showList = []
self.dataPath = u'C:\\Users\\Administrator\\Documents\\maya\\2017\\scripts\\PlayBlast\\output\\data\\tempdata.txt'
self.myAT = AT_UI()
self.PB = playBlastClass.customPB()
self.PB.saveData(0)
self.getData()
self.getNS(self.AllData['refList'])
self.myAT.updateList(self.showList)
self.main_layout = QVBoxLayout()
self.setLayout(self.main_layout)
self.main_layout.addSpacerItem(QSpacerItem(1, 60, QSizePolicy.Fixed, QSizePolicy.Maximum))
self.main_layout.addWidget(self.myAT)
self.myAT.mytoolbar.battonList[0][0].clicked.connect(self.exeCute)
def exeCute(self):
templist = self.myAT.callBack(self.AllData['refList'])
self.AllData['refList'] = templist
self.saveData(self.AllData)
self.PB.getData()
self.PB.execute()
def getNS(self,orilist):
for i in orilist:
tempns = mc.referenceQuery(i,ns=True)
self.showList.append(tempns)
def getData(self):
try:
with open(self.dataPath, 'r') as fin:
self.AllData = json.load(fin)
except:
print(u'data数据读取出错')
def saveData(self,dict):
try:
with open(self.dataPath,'w') as fout:
json.dump(dict,fout)
except:
print(u'数据写入出错')
def paintEvent(self, event):
p = QPainter()
p.begin(self)
p.setPen(Qt.NoPen)
p.setBrush(QBrush(QColor(50, 50, 50, 255)))
p.drawRect(self.rect())
p.end()
if __name__ == '__main__':
w = MyWin()
w.show()
main
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在src目录中建main目录,里面放main.go,然后在工作目录为… src\main>下 go run mai...
- 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。css中主要有一下几种选择器: 元素选择器类选择器I...
- 在调试程序时我们经常会看到main函数有两个传递参数 main(int argc, char **argv),这两...
- VSCode如果运行 不起来一直提示这句话,说明路径错了,但是如果发现就在lib下面 就是提示找不到 请尝试赋值路...
- 5月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...