将函数分配给 QLabel 中的单词
Assign function to word in QLabel
我正在寻找以下问题的解决方案:
我想为 PyQt5
的 QLabel
中的某个单词分配一个函数,以便在单击该单词时执行该函数。
from PyQt5.QtWidgets import QMainWindow, QLabel, QVBoxLayout, QApplication, QWidget
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.title = "App"
self.left = 0
self.top = 0
self.width = 700
self.height = 300
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.setWindowTitle('Hauptmenü')
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.vbox = QVBoxLayout()
self.initUI()
def initUI(self):
self.label_text = QLabel(self)
text = "<a href='#'>Word1</a> and <a href='#'>Word2</a>"
self.label_text.setText(text)
self.vbox.addWidget(self.label_text)
self.central_widget.setLayout(self.vbox)
self.show()
self.label_text.linkActivated.connect(self.function1)
def function1(self):
print("ja")
def function2(self):
pass
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Window()
demo.show()
sys.exit(app.exec_())
当点击 word1
和 word2
中的 QLabel
时,应该执行不同的功能。我不知道如何将 word2
连接到第二个函数。
使用 html
功能和 style
属性覆盖默认值 html link。现在,当您单击 Word1
和 Word2
时,labelClicked
函数接收锚点作为参数:
from PyQt5.QtWidgets import QMainWindow, QLabel, QVBoxLayout, QApplication, QWidget
import sys
class Window(QMainWindow):
def __init__(self):
...
def initUI(self):
self.label_text = QLabel(self)
text = 'Here is the text with <a style="text-decoration:none; color:none" href="#word1">Word1</a> and here comes the <a style="text-decoration:none; color:none" href="#word2">Word2</a>'
self.label_text.setText(text)
self.label_text.linkActivated.connect(self.labelClicked)
self.vbox.addWidget(self.label_text)
self.central_widget.setLayout(self.vbox)
self.show()
def labelClicked(self, link):
print(link)
if __name__ == '__main__':
...
我正在寻找以下问题的解决方案:
我想为 PyQt5
的 QLabel
中的某个单词分配一个函数,以便在单击该单词时执行该函数。
from PyQt5.QtWidgets import QMainWindow, QLabel, QVBoxLayout, QApplication, QWidget
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.title = "App"
self.left = 0
self.top = 0
self.width = 700
self.height = 300
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.setWindowTitle('Hauptmenü')
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.vbox = QVBoxLayout()
self.initUI()
def initUI(self):
self.label_text = QLabel(self)
text = "<a href='#'>Word1</a> and <a href='#'>Word2</a>"
self.label_text.setText(text)
self.vbox.addWidget(self.label_text)
self.central_widget.setLayout(self.vbox)
self.show()
self.label_text.linkActivated.connect(self.function1)
def function1(self):
print("ja")
def function2(self):
pass
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Window()
demo.show()
sys.exit(app.exec_())
当点击 word1
和 word2
中的 QLabel
时,应该执行不同的功能。我不知道如何将 word2
连接到第二个函数。
使用 html
功能和 style
属性覆盖默认值 html link。现在,当您单击 Word1
和 Word2
时,labelClicked
函数接收锚点作为参数:
from PyQt5.QtWidgets import QMainWindow, QLabel, QVBoxLayout, QApplication, QWidget
import sys
class Window(QMainWindow):
def __init__(self):
...
def initUI(self):
self.label_text = QLabel(self)
text = 'Here is the text with <a style="text-decoration:none; color:none" href="#word1">Word1</a> and here comes the <a style="text-decoration:none; color:none" href="#word2">Word2</a>'
self.label_text.setText(text)
self.label_text.linkActivated.connect(self.labelClicked)
self.vbox.addWidget(self.label_text)
self.central_widget.setLayout(self.vbox)
self.show()
def labelClicked(self, link):
print(link)
if __name__ == '__main__':
...