python有没有网页版的pyqt_Python PyQT Web浏览器书签
這是我刪除的前一篇文章的轉載。在第一篇文章中,我問是否有人知道用PyQT5創建書簽的方法,然而,最初,我并沒有用我的方式發布我現在遇到的問題。我有3個工具欄,在我的網絡瀏覽器。在對于其他按鈕,如-退出,最小化,最大化等
用于網絡導航。在
書簽都是用QToolBar()的實例創建的。在
書簽工具欄代碼self.bookmark_bar = QToolBar('Bookmark')
self.bookmark_bar.setIconSize(QSize(12, 12))
self.bookmark_bar.setMovable(False)
self.addToolBar(self.bookmark_bar)
在工具欄被創建之后,按鈕被添加,因為那里有很多代碼,我將以截圖的形式顯示最終結果,并在init函數中顯示最后幾行代碼。在
最后幾行代碼:
^{pr2}$
網絡瀏覽器本身一切都很好,因為除了書簽,一切都正常。“bookmarks_load()”代碼行從.txt文件加載書簽。至于現在在.txt文檔中,書簽是youtube.com網站(不管使用哪個鏈接)。書簽的功能是:
將網站添加到書簽.txt在def Bookmark(self):
try:
qurl = QUrl(self.urlbar.text())
print('Here we are using the QUrl toString method: %s ---> Type: %s' % (qurl.toString(), type(qurl)))
url = qurl.toString()
print('Here we are storing the new string to a new variable: %s ---> Type: %s' % (url, type(url)))
b = open(os.path.join('bookmarks', 'bookmarks.txt'), "wb")
self.bookmarks_write = pickle.dump(url, b)
b.close()
except:
print("Crash - Bookmarks not stored")
self.bookmark_btn.setText("★")
從文檔文件加載書簽def bookmarks_load(self):
try:
bookmarks_open = open(os.path.join('bookmarks', 'bookmarks.txt'), 'rb')
self.bookmarks_write = pickle.load(bookmarks_open)
bookmarks_open.close()
self.create_bookmarks()
except:
bookmarks_open = open(os.path.join('bookmarks', 'bookmarks.txt'), 'wb')
bookmarks = 'http://www.stackoverflow.com'
self.bookmarks_write = pickle.dump(bookmarks, bookmarks_open)
bookmarks_open.close()
self.create_bookmarks()
print('Crash - Did not load bookmarks')
創建書簽'按鈕',當按下打開一個新的標簽與該網站def create_bookmarks(self):
bookmark_list = []
try:
for book in self.bookmarks_write.split():
print(book)
bookmark_list.append(book)
print(bookmark_list)
except:
print("Something went wrong with the list")
try:
button = QAction(QIcon(os.path.join('images', 'tab_icon.PNG')), 'Open bookmark', self)
button.triggered.connect(self.add_new_tab(QUrl(bookmark_list[0]), 'New'))
self.bookmark_bar.addAction(button)
except:
print('Button is causing the error')
現在這是我開始有問題的部分。如果我把-已觸發.connect線和我沒有添加任何功能到那個'按鈕'一切啟動和工作,沒有任何錯誤。它可以存儲和加載書簽。但是,當添加該行時,它會崩潰,并且不會創建按鈕(應用程序不會退出,因為有一個except語句捕捉到錯誤—pyqt沒有顯示它是什么錯誤)。這是add_new_tab()函數:def add_new_tab(self, qurl=None, label='Blank'):
if qurl is None:
qurl = QUrl('')
web_browser = QWebEngineView()
web_browser.setUrl(qurl)
web_browser.adjustSize()
index = self.tabs.addTab(web_browser, label)
self.tabs.setCurrentIndex(index)
web_browser.urlChanged.connect(lambda qurl, web_browser=web_browser:
self.update_urlbar(qurl, web_browser))
web_browser.loadFinished.connect(lambda _, i=index, web_browser=web_browser:
self.tabs.setTabText(i, web_browser.page().title()))
最初,我通過“雙擊”選項卡欄上的以下功能打開選項卡:def tab_open_doubleclick(self, index):
if index == -1:
self.add_new_tab()
正如你在觸發器上看到的-我確實將鏈接作為qrl傳遞,并且添加了一個測試標簽。我遇到的問題不知為什么不想工作,我也找不到原因,因為pythonpyqt5沒有顯示錯誤,它只是以返回代碼結束。在
屏幕截圖作為解釋:
鏈接未添加到書簽.txt在
鏈接已添加到書簽.txt在
在Pickle.txt鏈接中轉儲
運行“except”語句,而已觸發連接行未被注釋掉
應用程序繼續運行,但加載的書簽按鈕不存在。
總結
以上是生活随笔為你收集整理的python有没有网页版的pyqt_Python PyQT Web浏览器书签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京市房价预测---数据收集
- 下一篇: websocket python爬虫_p