【问题标题】:Pyqt4, QtCore4.dll appcrashPyqt4、QtCore4.dll 应用程序崩溃
【发布时间】:2014-10-14 06:22:57
【问题描述】:

我正在使用 Python 制作 GUI 应用程序,使用 PyQt4 和 spynner。我有功能:

def find_me(self, url, name=None, code=None):
    b = spynner.Browser()
    if name != None and code != None:
        b.create_webview()
        b.load(url)
        b.wk_fill('input[name="ctl00$cphBody$tbOrgName"]', name)
        b.wk_fill('input[name="ctl00$cphBody$OrganizationCode1$CodeTextBox"]', code)
        b.click('#ctl00_cphBody_btnSearch')
        b._wait_load()
        source = b.html
        b.destroy_webview()
        b.close()
    else:
        b.create_webview()
        b.load(url)
        source = b.html
        b.destroy_webview()
        b.close()
    return source

这个函数在网站上做一些动作并返回给我页面的 html 代码。 我有名为“下载器”的主要功能:

def downloader(self):
    downloads_list = []
    uniq = []
    j = 0
    for name, code, checkstate in self.input_data:
        try:
            if checkstate == 0:
                source = self.find_me("http://bankrot.fedresurs.ru/DebtorsSearch.aspx",     name, code)
                root = XpathSelector(fromstring(source))
            else:
                new_name = name.split(" ")
                source = self.find_me2("http://bankrot.fedresurs.ru/DebtorsSearch.aspx", new_name[0], new_name[1], new_name[2], code)
                root = XpathSelector(fromstring(source))
    ......
    self.progress_bar.setValue(((j+1)*100)/len(self.input_data)) #setting value to progress bar
    j += 1

我还有第三个调用“下载器”的函数:

def print_keys(self):
    .................
    self.downloader()

这个函数连接到按钮:

self.start_button.clicked.connect(self.print_keys)

在“downloader”中这个字符串之后:

self.progress_bar.setValue(((j+1)*100)/len(self.input_data))

我有“Python.exe”应用程序崩溃。原因:QtCore4.dll。

我做错了什么?请帮助我。

【问题讨论】:

  • “寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包含在问题本身中重现它所需的最短代码”。您能否提供一个简单的工作示例来演示问题,而不是大型程序的小部分。崩溃可能是由于许多事情造成的,如果没有上下文就无法诊断。
  • 我的程序因为“spynner”而崩溃。没有 spynner,我没有任何问题。但我需要 spynner 来自动化一些动作。
  • 可能是这样,但您仍然需要为演示问题的简约工作示例提供代码。没有它来调试这种东西基本上是不可能的

标签: python pyqt4 qtcore crash


【解决方案1】:

通过将 spynner 替换为 Selenium+PhantomJS 解决了我的问题

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 2012-10-31
    • 2011-07-27
    • 2014-07-25
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多