2013-08-19 60 views
1
#!/usr/bin/env python 
#-*- coding:utf-8 -*- 
import sys 
from PySide.QtCore import * 
from PySide.QtGui import * 
from PySide.QtWebKit import * 
from PySide.QtHelp import * 
from PySide.QtNetwork import * 

app = QApplication(sys.argv) 

web = QWebView() 
web.load(QUrl("http://google.com")) 
web.show() 
web.resize(650, 750) 
q_pixmap = QPixmap('icon.ico') 
q_icon = QIcon(q_pixmap) 
QApplication.setWindowIcon(q_icon) 
web.setWindowTitle('Browser') 
sys.exit(app.exec_()) 

如何添加一個工具欄上有兩個按鈕: 一個叫'URL 1',另一個'URL 2'因此,如果他們點擊它將打開一個URL。如果你知道我的意思,YOu可以將這個與喜歡的網站列表進行比較。如何在PySide的瀏覽器示例上添加工具欄?

謝謝!

+0

那麼不是真的,我沒有成功,使一個工具欄。但我希望工具欄中的按鈕可以在同一窗口中重新加載其他頁面。這樣它會重定向到其他網站。我怎麼做? – svenweer

+0

我更新了答案。現在檢查出來。您只需將另一個URL加載到與'QAction'連接的回調函數中的Web瀏覽器中即可。 –

+0

非常感謝! – svenweer

回答

2

這是一個很好的PyQt Tutorial開始。

要得到一個工具欄,你必須創建一個MainWindow,它將有一個工具欄,幷包含你的瀏覽器窗口作爲你的中心控件。要將項目添加到工具欄,首先必須創建操作,然後將這些操作添加到工具欄。動作可以與一個將在觸發動作時執行的函數連接。

這裏是一個工作片段:

import sys 
from PySide import QtCore, QtGui, QtWebKit 

class MainWindow(QtGui.QMainWindow): 
    def __init__(self): 
     super(MainWindow, self).__init__() 
     # Create an exit action 
     exitAction = QtGui.QAction('Load Yahoo', self) 
     # Optionally you can assign an icon to the action 
     # exitAction = QtGui.QAction(QtGui.QIcon('exit24.png'), 'Exit', self) 
     exitAction.setShortcut('Ctrl+Q') # set the shortcut 
     # Connect the action with a custom function 
     exitAction.triggered.connect(self.load_yahoo) 
     # Create the toolbar and add the action 
     self.toolbar = self.addToolBar('Exit') 
     self.toolbar.addAction(exitAction) 

     # Setup the size and title of the main window 
     self.resize(650, 750) 
     self.setWindowTitle('Browser') 

     # Create the web widget and set it as the central widget. 
     self.web = QtWebKit.QWebView(self) 
     self.web.load(QtCore.QUrl('http://google.com')) 
     self.setCentralWidget(self.web) 

    def load_yahoo(self): 
     self.web.load(QtCore.QUrl('http://yahoo.com')) 


app = QtGui.QApplication(sys.argv) 
main_window = MainWindow() 
main_window.show()  
sys.exit(app.exec_())