我使用一个采用Qt编写的软件,其中有一个QMainWindow对象。当添加一个小部件到已经存在的QMainWindow对象时,我需要获取该小部件的引用。我查看了Qt文档,但是没有找到任何类似"childAdded"的事件。请检查以下代码:
import sys
from PyQt5.QtWidgets import QApplication, QPushButton, QMainWindow, QDockWidget
from PyQt5.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.button = QPushButton("A Button!")
self.setCentralWidget(self.button)
def do_something(w):
w.setWindowTitle("Newly Added")
def add_dock_widget(win):
win.addDockWidget(Qt.RightDockWidgetArea, QDockWidget())
app = QApplication(sys.argv)
window = MainWindow()
window.show()
add_dock_widget(window)
# At this point, somehow, I need to get the reference of added widget.
# Because add_dock_widget method doesn't return any reference.
# I'm looking for something like that, so that I can manipulate the widget:
# window.childAdded[****].connect(do_something)
app.exec_()
这款软件允许在其中编写Python脚本。当向GUI添加一个子项时,我需要使用脚本对子项进行更改。