我想用PyQt设计器创建一个简单的gui来向VirusTotal服务发送一些网址。这是一个简单的脚本,每分钟可发送4个网址,即:
import simplejson
import urllib
import urllib2
url = "https://www.virustotal.com/vtapi/v2/url/scan"
parameters = {"url": "http://www.virustotal.com",
... "apikey": "1fe0ef5feca2f84eb450bc3617f839e317b2a686af4d651a9bada77a522201b0"}
data = urllib.urlencode(parameters)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
json = response.read()
print json
{"response_code": 1,
"verbose_msg": "Scan request successfully queued, come back later for the report",
"scan_id": "1db0ad7dbcec0676710ea0eaacd35d5e471d3e11944d53bcbd31f0cbd11bce31-1320752364",
"scan_date": "2014-01-08 11:39:24",
"url": "http://www.virustotal.com/",
"permalink": "http://www.virustotal.com/url/1db0ad7dbcec0676710ea0eaacd35d5e471d3e11944d53bcbd31f0cbd11bce31/analysis/1320752364/"}
我如何制作一个gui,用户可以将网址和他的api密钥放入gui并将请求发送给virustotal。
我只需要一些指导而不是整个解决方案。
答案 0 :(得分:1)
好吧直截了当: -
1)使用QtDesigner将gui元素拖放到窗口小部件上,保存它。例如virustotal.ui
2)使用pyuic4将ui文件转换为python文件。(" pyuic4 virustotal.ui -o virustotal.py")
3)然后将上面给出的代码复制到文件中。
4)感知来自按钮的点击信号,并为其指定一个包装参数字典的插槽,然后照常执行。
self.lineEdit1 = QtGui.QLineEdit(self) #URL
self.lineEdit2 = QtGui.QLineEdit(self) # API KEY
self.pushButton = QtGui.QPushButton(self) # SEND BUTTON
QtCore.QObject.connect(self.pushButton , QtCore.SIGNAL("clicked()") , self.doIt)
def doIt(self):
parameters = {"url": str(self.lineEdit1.text()),"apikey": str(self.lineEdit2.text())}
data = urllib.urlencode(parameters)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
json = response.read()
print json
这是代码运行方式的基本布局,进一步的细节必须根据您的需要进行。