Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法将动态插槽添加到Qobject。Pyside支持最多50个动态插槽_Python_Qt_Pyside_Qwidget - Fatal编程技术网

Python 无法将动态插槽添加到Qobject。Pyside支持最多50个动态插槽

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和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']))
您能给我们看一下代码吗?升级到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 = {}