鱼C论坛

 找回密码
 立即注册
查看: 1735|回复: 0

Qt 槽函数传参的疑惑

[复制链接]
发表于 2021-9-18 09:54:52 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 上杉繪梨衣 于 2021-9-22 14:24 编辑

我用QtDesinger画了个界面,转成py文件后,我定义了一个方法如下
def __Load_Render_Presets(self, uiChange):
        
        u"""
        为Ui上Render Setting Presets 选项下的项目和参数级别下拉菜单添加名称
        """

        if self.uiCsArRenSetPresetsLevelSel.count():
            self.uiCsArRenSetPresetsLevelSel.clear()

        if uiChange == "create":
            #print("uiChange = false")
            self.uiCsArRenSetPresetsProjectSel.addItems([renderSettingProject for renderSettingProject in os.listdir(self.csArnoldToolRenderOptions)])
            # self.uiCsArRenSetPresetsLevelSel.addItems(
            #     [renderSettingLevel for renderSettingLevel in os.listdir(os.path.join(self.csArnoldToolRenderOptions, self.uiCsArRenSetPresetsProjectSel.currentText()))]
            # )
        elif uiChange == "refresh":
            print("uiChange = true")
            # self.uiCsArRenSetPresetsLevelSel.addItems(
            #     [renderSettingLevel for renderSettingLevel in os.listdir(os.path.join(self.csArnoldToolRenderOptions, self.uiCsArRenSetPresetsProjectSel.currentText()))]
            # )
然后我在setupUi这个方法里调用了这个方法,并传入了一个参数,是这么写的
self.__Load_Render_Presets("create")
然后我定义了一个新的方法,给界面上的一个下拉菜单的信号也绑定了这个方法,也传入了一个参数,是这么写的
def __Link_Ui_To_Function(self):

        u"""
        链接Ui和槽函数
        """
        
        self.uiCsArRenSetPresetsProjectSel.currentIndexChanged.connect(partial(self.__Load_Render_Presets, "refresh"))
这个方法和上一个方法都是在setupUi这个方法里面调用的
def setupUi(self, uiWindow):

    "......"

    self.__Link_Ui_To_Function()
    self.__Load_Render_Presets("create")

然后在软件里运行就会报错,
# TypeError: __Load_Render_Presets() takes exactly 2 arguments (3 given)
但是如果我不传参数,写作如下,又会说我只给了一个参数
self.__Load_Render_Presets()

# Error: # TypeError: __Load_Render_Presets()takes exactly 2 arguments (1 given) # 

我感觉是槽函数传参和初始化调用不能用同一个方法,传进去的参数貌似都被视为了独立的参数,期待有大佬解惑

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 13:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表