Python 无法将动态插槽添加到Qobject。Pyside支持最多50个动态插槽
嗨,我已经用Pyside和Python2.6开发了一个小应用程序 在屏幕上有多个小部件的创建和删除 但经过一段时间后,它显示以下错误并使应用程序崩溃 无法向Qobject添加动态插槽。Pyside最多支持50个动态插槽。 请有人告诉我如何解决这个问题 提前谢谢 我已经分享了代码的一些主要部分 第一部分是滚动框,第二部分是按行添加到滚动框中的小部件 --编码:utf-8-- 尝试: _编码=QtGui.QApplication.UnicodeUTF8 定义翻译(上下文、文本、消歧): 返回QtGui.QApplication.translate(上下文、文本、消歧、_编码) 除属性错误外: 定义翻译(上下文、文本、消歧): 返回QtGui.QApplication.translate(上下文、文本、消歧) 类Ui_表单(对象): definit(自我,专业版): self.pro=pro def setupUi(自我,表格): setObjectName(_fromUtf8(“表单”)) 形状。调整大小(1800600) self.horizontalLayout_2=QtGui.QHBoxLayout(表单) self.horizontalLayout_2.setObjectName(_fromUtf8(“horizontalLayout_2”)) self.horizontalLayout=QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8(“horizontalLayout”)) self.resolve=QtGui.QCheckBox(表单) 自解析设置最小宽度(60) self.resolve.setChecked(1) self.isforce=QtGui.QCheckBox(表单) 自力设置最小宽度(60) self.isforce.setChecked(0) self.isforce.setDisabled(1) self.in_type=QtGui.QComboBox(表单) self.in_type.setObjectName(_fromUtf8(“in_type”)) self.in\u type.addItem(\u fromUtf8(“”)) self.in\u type.addItem(\u fromUtf8(“”)) self.in\u type.addItem(\u fromUtf8(“”)) self.shname=QtGui.QComboBox(表单) self.shname.setObjectName(_fromUtf8(“shname”)) self.shname.addItem(_fromUtf8(“”)) self.progressBar=QtGui.QProgressBar(表单) self.progressBar.setObjectName(_fromUtf8(“progressBar”)) self.file_name=QtGui.QLineEdit(表单) self.file\u name.setObjectName(\u fromUtf8(“文件名”)) self.version=QtGui.QSpinBox(表单) self.version.setObjectName(_fromUtf8(“spinBox”)) self.shstre=QtGui.QComboBox(表格) self.shstre.setObjectName(_fromUtf8(“sterro”)) self.fstart=QtGui.QLineEdit(表单) self.fstart.setObjectName(_fromUtf8(“fstart”)) self.fend=QtGui.QLineEdit(表单) self.fend.setObjectName(_fromUtf8(“fend”)) self.destination_path=QtGui.QLineEdit(表单) self.destination\u path.setObjectName(\u fromUtf8(“destination\u path”)) self.source_path=QtGui.QLineEdit(表单) self.source\u path.setObjectName(\u fromUtf8(“source\u path”)) 自重传(表格) self.my_changes() QtCore.QMetaObject.connectSlotsByName(表单) def重新传输(自身,表格): Form.setWindowTitle(_translate(“Form”,“Form”,None)) self.in_type.setItemText(0,_translate(“Form”,“Plate”,None)) self.in_type.setItemText(1,_translate(“Form”,“Reference”,None)) self.in_type.setItemText(2,翻译(“形式”,“冲突”,无)) self.shname.setItemText(0,_translate(“Form”,“shname”,None)) self.file\u name.setText(\u translate(“表单”,“文件名”,无)) self.fstart.setText(_translate(“Form”,“StartFrame”,None)) self.fend.setText(_translate(“Form”,“End\u Frame”,无)) self.source\u path.setText(_translate(“Form”,“source\u path”,None)) self.destination\u path.setText(_translate(“Form”,“destination\u path”,None)) def my_更改(自我): self.filesize=QtGui.QLineEdit() self.filesize.setObjectName(\u fromUtf8(“fstart”)) self.horizontalLayout.addWidget(self.resolve) self.horizontalLayout.addWidget(self.isforce) self.horizontalLayout.addWidget(self.shname) self.horizontalLayout.addWidget(self.in_类型) self.horizontalLayout.addWidget(self.version) self.horizontalLayout.addWidget(self.shstre) self.horizontalLayout.addWidget(self.file\u名称) self.horizontalLayout.addWidget(self.fstart) self.horizontalLayout.addWidget(self.fend) self.horizontalLayout.addWidget(self.filesize) self.horizontalLayout.addWidget(self.progressBar) self.horizontalLayout.addWidget(self.destination\u路径) self.horizontalLayout.addWidget(self.source\u路径) self.horizontalLayout_2.addLayout(self.horizontalLayout) self.version.setPrefix('v') self.version.setValue(1) self.shstre.addItems(['mono','shstre']))Python 无法将动态插槽添加到Qobject。Pyside支持最多50个动态插槽,python,qt,pyside,qwidget,Python,Qt,Pyside,Qwidget,嗨,我已经用Pyside和Python2.6开发了一个小应用程序 在屏幕上有多个小部件的创建和删除 但经过一段时间后,它显示以下错误并使应用程序崩溃 无法向Qobject添加动态插槽。Pyside最多支持50个动态插槽。 请有人告诉我如何解决这个问题 提前谢谢 我已经分享了代码的一些主要部分 第一部分是滚动框,第二部分是按行添加到滚动框中的小部件 --编码:utf-8-- 尝试: _编码=QtGui.QApplication.UnicodeUTF8 定义翻译(上下文、文本、消歧): 返回QtG
您能给我们看一下代码吗?升级到PySide的最新版本:请参阅。嗨,Irshad,这是代码
author = 'prashant'
from PySide import QtCore, QtGui
import comres.recursiveLoad_files as recurse
import os
import re
verbose = False
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
class my_dropable_scroll_box(QtGui.QScrollArea):
def init(self,parent=None):
super(my_dropable_scroll_box,self).init(parent)
self.setAcceptDrops(True)
self.scrollAreaWidgetContents = QtGui.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 1800, 600))
self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents"))
self.setWidget(self.scrollAreaWidgetContents)
self.verticalLayout_2 = QtGui.QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.verticalLayout_main = QtGui.QVBoxLayout()
self.verticalLayout_main.setObjectName(_fromUtf8("verticalLayout_main"))
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.verticalLayout_main.addItem(spacerItem)
self.verticalLayout_2.addLayout(self.verticalLayout_main)
self.pro = None
self.all_sh = []
self.data_store_wdg = {}
self.data_store_qobject = {}
self.data_store_groupbx = {}
def start_reading_data(self, path):
date_from_recuse= {'Plate': [{'file_name': '/home/prashant/Desktop/Ingest_Tool/downloadPath/Dummy/Plate_test/right/I_022_bf_1030_bg01_v2_right.####.exr', 'end_frame': '1258', 'start_frame': '1001'}], 'Lut': [{'file_name': '/home/prashant/Desktop/Ingest_Tool/downloadPath/Dummy/lutes/CA001_cineon_v01.spi1d', 'end_frame': '', 'start_frame': ''}], 'Reference': [{'file_name': '/home/prashant/Desktop/Ingest_Tool/downloadPath/Dummy/bunch/TFH_CA500_001_pradeepk_comp_v009_1009.png', 'end_frame': '', 'start_frame': ''}], 'Conflict': [{'file_name': '/home/prashant/Desktop/Ingest_Tool/downloadPath/Dummy/CA500/bla_bla_CA500.nfo', 'end_frame': '', 'start_frame': ''}]}
self.update_my_ui(date_from_recuse)
def update_my_ui(self, ingest_item, firstUi=True):
self.tobe_ingest_item = ingest_item
index_no = 0
all_ingest = self.tobe_ingest_item.keys()
for inget_typ in all_ingest:
for obj in self.tobe_ingest_item[inget_typ]:
if verbose : print inget_typ, obj
filenm = obj['file_name']
self.data_store_qobject[filenm] = QtGui.QWidget()
self.data_store_qobject[filenm].setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.data_store_groupbx[filenm] = QtGui.QGroupBox()
self.data_store_groupbx[filenm].setAttribute(QtCore.Qt.WA_DeleteOnClose)
lyot = QtGui.QHBoxLayout()
lyot.addWidget(self.data_store_qobject[filenm])
self.data_store_groupbx[filenm].setLayout(lyot)
self.data_store_groupbx[filenm].setStyleSheet('Border : 1px solid grey')
self.data_store_wdg[filenm] = Ui_Form(self.pro)
self.data_store_wdg[filenm].setupUi(self.data_store_qobject[filenm])
'''
check shstre
'''
if inget_typ == 'Plate':
shstreval, filenm2 = recurse.stereoMatchname(filenm)
self.data_store_wdg[filenm].shstre.setCurrentIndex(shstreval)
self.data_store_wdg[filenm].file_name.setText(filenm2)
if verbose: print filenm
self.data_store_wdg[filenm].in_type.setCurrentIndex(self.data_store_wdg[filenm].in_type.findText(inget_typ))
self.data_store_wdg[filenm].file_name.setText(obj['file_name'])
self.data_store_wdg[filenm].fstart.setText(obj['start_frame'])
self.data_store_wdg[filenm].fend.setText(obj['end_frame'])
'''
setversion
'''
take_base_nm = os.path.basename(obj['file_name']).split('.')[0]
split_name = take_base_nm.split('_')
p = re.compile(r'(^v\d+)')
version = 0
for nm in split_name:
m = p.match(nm)
if m and nm[1:].isdigit():
version = int(nm[1:])
if len(nm)-len(str(version)) == 1:
self.data_store_wdg[filenm].version.setPrefix('v')
elif len(nm)-len(str(version)) == 2:
self.data_store_wdg[filenm].version.setPrefix('v0')
else:
self.data_store_wdg[filenm].version.setPrefix('v00')
self.data_store_wdg[filenm].version.setValue(version)
if inget_typ == 'Conflict':
self.data_store_wdg[filenm].in_type.setStyleSheet('border: 1px solid red;')
self.data_store_wdg[filenm].resolve.setChecked(0)
self.verticalLayout_main.insertWidget(index_no + 1, self.data_store_groupbx[filenm])
index_no += 1
def clear_my_widget(self):
for no in range(1,self.verticalLayout_main.count()-1):
self.verticalLayout_main.itemAt(no).widget().deleteLater()
self.data_store_wdg.clear()
self.data_store_qobject.clear()
self.data_store_groupbx.clear()
self.data_store_wdg = {}
self.data_store_qobject = {}
self.data_store_groupbx = {}