Python在函数之间传递pyqt中的变量文件名

2024-10-03 13:18:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个destop申请 用一个按钮(button“on”上的“button”单击“u getfile”),您可以选择一个文件。 用另一个按钮(button_nuon_click_work),你应该处理文件。 在处理文件之前,我需要一些来自用户的输入,因此我需要将文件名从button_on_click_getfile传递到button_on_click_work。在

如何传递文件名。我的代码正常工作,但当我按下“按”按钮“单击”工作时,返回以下结果:

Process finished with exit code -1073740791 (0xC0000409)

这是我的代码:

^{pr2}$

Tags: 文件代码用户on文件名withbuttonprocess
1条回答
网友
1楼 · 发布于 2024-10-03 13:18:36

也许,您可以在这段代码中想到这些解决方案。在

全局声明

在每个函数中编写global filename。 这两个文件名都可以使用。 请注意复制名称并覆盖。 请别忘了把这份声明写在保险箱前面。在

QObject的属性

def on_click_getfile(self):

self.setProperty("get_filename",get_filename)您可以用适当的名称命名。在

def on_click_work(self):

以同样的名字命名。在

在Qt编程中,了解和思考父&子关系以及与每个小部件的连接非常重要。在

这些解决方案不是很好,因为它没有致力于提高你的技能。 但是,当您对widget的连接和传递valiables感到困惑时,这两种方法都非常有用。在

创造自我。对象首先在构造函数中

你应该创建一个file对象self.current_文件名在构造函数中(类主窗口)

-omitting-
self.current_filename = ""#here
def on_click_getfile(self):
        fname = QFileDialog.getOpenFileName(self,
                                            'Open file',
                                            'c:\\',
                                            'Alle LV-Check-Datein,(*.txt *.docx *.xml *.x81 *.pdf)'
                                            #'Alle Datein (*.*)'
                                            )
        self.filename = fname[0]#here this can be
        self.path_file.setText(self.filename)
        print (filename)

        return filename`# you may delete it.




def on_click_work(self):
    if len (self.w_pz.text()) < 1:
        messagebox.showinfo("Information", "Please  put something in")
    elif len (self.w_pn.text()) < 1:
        messagebox.showinfo("Information", "Please  put something in")
    else:
        input_lv =([self.w_pz.text(),self.w_pn.text()])
        print (input_lv)

        #filename = on_click_getfile(filename) ##this should get the filename from the on_click_getfile function
        #print (filename)
        convert_file_to_txt2(self.filename#here,input_lv, output_filename=OUTPUT_FILENAME) # this should start running convertig different filetypes depending on the filename, which was put in at teh on_click_getfile function
        work_file_with_excel(OUTPUT_FILENAME) # this should get the outputfile from convert_file_to_txt2 and run a search

也就是说,不需要在两个函数之间传递validable。 您首先生成self.filename对象。当你得到filename,把它设为self.filename,最后,你在方法中使用它,我认为这是解决这个问题的最好办法。在

在这种情况下,它将比Signal&Slot更简单。在

相关问题 更多 >