pyqt6 QPushButton点击事件字体颜色改变
时间: 2024-08-20 14:01:53 浏览: 166
在 PyQt6 中,如果你想要在 QPushButton 的点击事件中更改字体颜色,你可以这样做:
首先,你需要设置按钮的连接信号和槽(slot)。当按钮被点击时,会触发自定义的槽函数,这个函数可以修改按钮的文字颜色。
```python
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QLabel
from PyQt6.QtGui import QFont, QColor, QTextCursor
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.button = QPushButton("点击我")
self.label = QLabel("默认文字颜色")
self.button.clicked.connect(self.change_font_color)
layout = QVBoxLayout()
layout.addWidget(self.button)
layout.addWidget(self.label)
self.setLayout(layout)
def change_font_color(self):
current_color = self.label.textColor() # 获取当前颜色
new_color = QColor(current_color.name()) # 创建新的颜色,这里假设新颜色是反色
new_color.setHsv(current_color.hue(), 255, 255) # 修改HSV模式的颜色值,这里是变亮
self.label.setTextColor(new_color) # 设置新的字体颜色
cursor = self.label.textCursor() # 获取光标位置
cursor.movePosition(QTextCursor.End) # 移动到文字结束处
self.label.setTextCursor(cursor) # 更新光标位置
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在这个例子中,每次点击按钮,按钮的文字颜色都会变成它的互补色,并保持高对比度。如果需要更复杂的颜色变化逻辑,你可以根据需求调整`new_color`部分的代码。
阅读全文