我創建了標籤:self.labelOnlineHelp = QLabel('<a href="http://example.com">Online Help</a>')
並希望使其可點擊。理想情況下,它應該打開Firefox(但不是默認的瀏覽器),並將鼠標改爲指針(簡而言之:只是創建一個通常的超鏈接)。我發現qlabel沒有點擊事件。有沒有辦法以簡單的方式執行此操作?pyqt:爲Qlabel添加點擊事件
1
A
回答
1
如果你想要做的事比默認的行爲(即在默認瀏覽器中打開鏈接)不同,您可以使用setOpenExternalLinks
self.labelOnlineHellp.setOpenExternalLinks(True)
做到這一點,你可以連接到linkActivated
信號,而不是(唐」如果您自己處理鏈接的打開,請使用setOpenExternalLinks
至True
)。
self.labelOnlineHelp.linkActivated.connect(self.link_handler)
def link_handler(self, link):
subprocess.call(['/path/to/firefox', link])
+0
謝謝。它幫助了很多:) – ascentman
1
您需要重新實現QLabel類並重寫mousePressEvent或mouseReleaseEvent。這裏有一個簡單的例子:
class MyLabel(QLabel):
def __init__(self, parent):
QLabel.__init__(self, parent)
self.link = "http://www.example.com"
def mousePressEvent(self, event):
# open the link on your browser
webbrowser.get('firefox').open_new_tab(self.link)
相關問題
- 1. 爲定位點添加點擊事件
- 2. pyqt-如何爲QLabel類創建點擊信號?
- 3. 添加keydown點擊事件
- 4. 爲UpdatePanel添加jquery點擊事件
- 5. 按鈕添加事件點擊事件
- 6. PyQt - QLabel繼承
- 7. ContextMenu MenuItems在點擊事件上連續添加點擊事件
- 8. 添加內嵌點擊事件後發生的點擊事件?
- 9. PyQt:點擊事件清除QLineEdit
- 10. 如何爲jquery中新添加的div添加點擊事件?
- 11. 如何爲動態添加的按鈕添加點擊事件
- 12. 並行QLabel在PyQt
- 13. PyQt的更新QLabel
- 14. 添加點擊事件通知按鈕
- 15. 添加點擊事件圖像
- 16. 向LabelField添加點擊事件代碼
- 17. 角4動態添加點擊事件
- 18. 添加點擊事件ListView的問題
- 19. 添加點擊事件empy跨度塊
- 20. 添加防止默認點擊事件?
- 21. openseadragon添加點擊事件nextButton previousButton
- 22. OpenLayers - 在ol.Overlay上添加點擊事件
- 23. c#添加動態點擊事件
- 24. 將點擊事件添加到IOS NSMutableAttributedString
- 25. 添加點擊事件JQ滑塊
- 26. jQuery添加多個點擊事件
- 27. 將點擊事件添加到fullcalendar
- 28. 在循環內添加jQuery點擊事件「自動」點擊所有事件
- 29. 如何檢索()與點擊添加點擊數事件
- 30. 點擊事件沒有提高點擊跨項添加動態
你可以使用'QTextBrowser'元素並禁用它。它支持超鏈接,應該看起來像一個QLabel(也可以禁用該框架)。不過,我不知道打開一個非默認瀏覽器。 – Ian
QLabel沒有點擊事件,但它有mousePressEvent和mouseReleaseEvent。也許你可以使用它們。 – okorkut
@okorkut你能舉一個簡單的例子,我該如何使用這個事件。我需要信號/插槽嗎? – ascentman