小编Pas*_*eBT的帖子

PyQT打开一个带有JS警报弹出的网页将获得SegFault.如何解决?

我正在学习PyQT编程,当我尝试一个简单的测试时,我得到了Segmentation错误,这是我的代码pop.py:

#! /usr/bin/python

import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView

app = QApplication(sys.argv)
v = QWebView()
v.load(QUrl("http://127.0.0.1/j.html"))
v.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)

我在127.0.0.1启动了一个Apache服务器进行测试.这是j.html:

<html><script>alert("I am here");</script>
<body>Hello World</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我启动pop.py,打开一个窗口,javascript弹出警告对话框,我点击确定,然后pop.py将完全得到"分段错误"

我试过PySide,得到相同的结果.如果不是在HTML中的JS警报,那就OK了.这是QT的错误还是我错过了什么?

我使用python 2.6.6,python-qt4 4.8.3,libqtwebkit4 2.1.0开发Debian

我也尝试过Fedora 15和PyQt4-4.8.3,python 2.7.1,同样的问题

任何建议,搜索的线索都会有所帮助.谢谢

javascript python qt4 pyqt

24
推荐指数
1
解决办法
1001
查看次数

使用go build时如何在链接标志的值字符串中包含空格

这是测试代码m.go:

package main

var version string

func main() {
    println("ver = ", version)
}
Run Code Online (Sandbox Code Playgroud)

如果我编译并链接到1.5:

go tool compile m.go
go tool link -o m -X main.version="abc 123" m.o
Run Code Online (Sandbox Code Playgroud)

工作良好.

但是如果我使用build命令和go 1.5:

go build -o m -ldflags '-X main.version="abc 123"' m.go
Run Code Online (Sandbox Code Playgroud)

它会显示帮助信息,这意味着错误

如果我改为1.4语法:

go build -o m -ldflags '-X main.version "abc 123"' m.go
Run Code Online (Sandbox Code Playgroud)

它的工作原理除了警告信息:

link: warning: option -X main.version abc 123 may not work in future releases; use -X main.version=abc 123
Run Code Online (Sandbox Code Playgroud)

如果参数值中没有空格,则工作正常:

go build -o m -ldflags '-X main.version=abc123' m.go
Run Code Online (Sandbox Code Playgroud)

因为编译和链接工作正常,所以我认为这不是链接部分问题.我比较了go1.4和1.5的构建源代码,对于ldflags部分,看起来没什么变化.因为我可以使用一些空间字符替换空间然后在程序中将其更改回来,但为什么呢?我错过了什么吗?使用-ldflags的正确语法是什么?谢谢

go

2
推荐指数
1
解决办法
1389
查看次数

标签 统计

go ×1

javascript ×1

pyqt ×1

python ×1

qt4 ×1