Python 1个按钮控制2个不同类别的操作
这是一个pyside GUI,我在2个不同的.py文件中创建了2个面板,main.py和sub.py每个面板将显示一个we浏览器“QWebView”。当前,当用户按下main.py上的按钮时,它会将用户重定向到一个页面,例如“www.google”,用户必须单击sub.py上的按钮才能重定向到例如“www.facebook.com”,它们作为独立功能工作Python 1个按钮控制2个不同类别的操作,python,qt,pyside,qpushbutton,Python,Qt,Pyside,Qpushbutton,这是一个pyside GUI,我在2个不同的.py文件中创建了2个面板,main.py和sub.py每个面板将显示一个we浏览器“QWebView”。当前,当用户按下main.py上的按钮时,它会将用户重定向到一个页面,例如“www.google”,用户必须单击sub.py上的按钮才能重定向到例如“www.facebook.com”,它们作为独立功能工作 我想问一下,有没有一种方法可以将两者链接在一起,用户按下main.py上的按钮,两个WebBrowser将一起更改 是的,同一个连接可以触发多
我想问一下,有没有一种方法可以将两者链接在一起,用户按下main.py上的按钮,两个WebBrowser将一起更改 是的,同一个连接可以触发多个项目
QObject::connect(myButton, SIGNAL(clicked()),
this, SLOT(launchGoogleSiteOnBrowserA());
QObject::connect(myButton, SIGNAL(clicked()),
pointerToOtherClass, SLOT(launchFacebookSiteOnBrowserB());
编辑:下面是关于在PyQt中使用信号和插槽的另一个答案
以下是在PyQt中执行此操作的方法:
widget.pyw
from PyQt4 import QtCore, QtGui
from mybrowser import Browser
class Widget(QtGui.QWidget):
def __init__(self):
super(Widget, self).__init__()
self.myButton = QtGui.QPushButton('Open Facebook and Google')
self.myHLayout = QtGui.QHBoxLayout()
self.myVLayout = QtGui.QVBoxLayout()
self.myVLayout.addWidget(self.myButton)
url = QtCore.QUrl('http://www.yahoo.com')
self.browserLHS = Browser(url)
self.browserRHS = Browser(url)
self.myHLayout.addWidget(self.browserLHS)
self.myHLayout.addWidget(self.browserRHS)
QtCore.QObject.connect(self.myButton, QtCore.SIGNAL("clicked()"), self.changePageOnBothBrowsers )
self.myVLayout.addLayout(self.myHLayout)
self.setLayout(self.myVLayout)
def changePageOnBothBrowsers(self):
self.browserLHS.load(QtCore.QUrl.fromUserInput('google.com'))
self.browserRHS.load(QtCore.QUrl.fromUserInput('facebook.com'))
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
widget = Widget()
widget.show()
sys.exit(app.exec_())
mybrowser.pyw
from PyQt4 import QtCore, QtGui, QtNetwork, QtWebKit
import jquery_rc
class Browser(QtWebKit.QWebView):
def __init__(self, url):
super(Browser, self).__init__()
self.progress = 0
fd = QtCore.QFile(":/jquery.min.js")
if fd.open(QtCore.QIODevice.ReadOnly | QtCore.QFile.Text):
self.jQuery = QtCore.QTextStream(fd).readAll()
fd.close()
else:
self.jQuery = ''
QtNetwork.QNetworkProxyFactory.setUseSystemConfiguration(True)
self.load(url)
self.loadFinished.connect(self.adjustLocation)
self.titleChanged.connect(self.adjustTitle)
self.loadProgress.connect(self.setProgress)
self.loadFinished.connect(self.finishLoading)
self.locationEdit = QtGui.QLineEdit(self)
self.locationEdit.setSizePolicy(QtGui.QSizePolicy.Expanding,
self.locationEdit.sizePolicy().verticalPolicy())
self.locationEdit.returnPressed.connect(self.changeLocation)
def adjustLocation(self):
self.locationEdit.setText(self.url().toString())
def changeLocation(self):
url = QtCore.QUrl.fromUserInput(self.locationEdit.text())
self.load(url)
self.setFocus()
def adjustTitle(self):
if 0 < self.progress < 100:
self.setWindowTitle("%s (%s%%)" % (self.title(), self.progress))
else:
self.setWindowTitle(self.title())
def setProgress(self, p):
self.progress = p
self.adjustTitle()
def finishLoading(self):
self.progress = 100
self.adjustTitle()
self.page().mainFrame().evaluateJavaScript(self.jQuery)
#if __name__ == '__main__':
#
# import sys
#
# app = QtGui.QApplication(sys.argv)
#
# if len(sys.argv) > 1:
# url = QtCore.QUrl(sys.argv[1])
# else:
# url = QtCore.QUrl('http://www.google.com/ncr')
#
# browser = Browser(url)
# browser.show()
#
# sys.exit(app.exec_())
从PyQt4导入QtCore、QtGui、QtNetwork、QtWebKit
导入jquery\u rc
类浏览器(QtWebKit.QWebView):
定义初始化(self,url):
超级(浏览器,自我)。\uuuu初始化
self.progress=0
fd=QtCore.QFile(:/jquery.min.js)
如果fd.open(QtCore.QIODevice.ReadOnly | QtCore.QFile.Text):
self.jQuery=QtCore.QTextStream(fd).readAll()
fd.close()
其他:
self.jQuery=''
qtnetworkproxyFactory.setUseSystemConfiguration(True)
self.load(url)
自加载完成连接(自调整位置)
self.title更改.connect(self.adjustTitle)
self.loadProgress.connect(self.setProgress)
self.loadFinished.connect(self.finishload)
self.locationEdit=QtGui.QLineEdit(self)
self.locationEdit.setSizePolicy(QtGui.QSizePolicy.Expanding,
self.locationEdit.sizePolicy().verticalPolicy())
self.location编辑.returnPressed.connect(self.changeLocation)
def调整位置(自身):
self.locationEdit.setText(self.url().toString())
def更改位置(自身):
url=QtCore.QUrl.fromUserInput(self.locationEdit.text())
self.load(url)
self.setFocus()
标题(自我):
如果01:
#url=QtCore.QUrl(sys.argv[1])
#其他:
#url=QtCore.QUrl('http://www.google.com/ncr')
#
#浏览器=浏览器(url)
#browser.show()
#
#sys.exit(app.exec_())
希望对您有所帮助。谢谢您提供的信息,我想知道我是否有两种不同的web浏览器窗口设计,是否需要从两种不同的脚本导入?