win32创建一个菜单,创建菜单“红色”,点击“红色”按键获取主窗口的文字,并把它改为红色
时间: 2024-04-29 19:25:52 浏览: 11
以下是Python代码示例:
```python
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, QApplication
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
redAction = QAction('红色', self)
redAction.triggered.connect(self.setTextRed)
menubar = self.menuBar()
fileMenu = menubar.addMenu('菜单')
fileMenu.addAction(redAction)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('菜单演示')
self.show()
def setTextRed(self):
text = self.centralWidget().findChild(QApplication.focusWidget().__class__, QApplication.focusWidget().objectName()).text()
self.centralWidget().findChild(QApplication.focusWidget().__class__, QApplication.focusWidget().objectName()).setStyleSheet('color: red')
self.centralWidget().findChild(QApplication.focusWidget().__class__, QApplication.focusWidget().objectName()).setText(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个名为“红色”的菜单,当我们点击它时,它将调用`setTextRed`方法。`setTextRed`方法用于获取当前焦点的窗口小部件的文本,并将它的样式设置为红色。最后,它将文本设置回原来的值。
注意,这里我们假设主窗口只有一个控件(可能是一个标签或一个文本框)具有焦点,因此我们可以使用`findChild`方法来查找当前焦点小部件的类型和对象名称。如果您的窗口中有多个小部件,您需要使用不同的方法来查找正确的小部件。