我想在PyQt5中的两个布局(在我的例子中是两个类)之间共享数据。
如何将一个布局操作正确地连接到另一个类的布局?例如,每当我点击类Left上的按钮时,类Right上的旋转框就会增加。
class Main(QMainWindow):
def __init__(self, parent=None):
super().__init__()
generalLayout = QHBoxLayout()
centralWidget = QWidget()
centralWidget.setLayout(generalLayout)
self.setCentralWidget(centralWidget)
left = Left()
right = Right()
generalLayout.addLayout(left)
generalLayout.addLayout(right)
self.setLayout(generalLayout)
class Left(QVBoxLayout):
signal = QtCore.pyqtSignal()
def __init__(self, parent=None):
super().__init__()
button = QPushButton("+ 1")
button.clicked.connect(self.add)
self.addWidget(button)
def add(self):
self.signal.emit()
class Right(QVBoxLayout):
def __init__(self):
super().__init__()
spinbox = QSpinbox()
self.addWidget(spinbox)
# spinbox.connect(???) ???
def main():
mainApp = QApplication([])
mainWindow = Main()
mainWindow.show()
sys.exit(mainApp.exec())
if __name__ == '__main__':
main()
如何在我的右类中订阅左信号?
也许还有另一个功能,就像Web应用程序中的主体和观察者一样?
2条答案
按热度按时间bvn4nwqk1#
你想捕获信号并将其绑定到你的正确组件(例如绑定到一个函数),这样当信号被抛出时,它将调用相应的函数
举个例子:
zy1mlcev2#
我使用父主类中的lambda函数调用另一个函数,该函数将更改第二个窗口中声明的类的值,从那里我可以访问另一个文件中的变量。需要导入Secondwww.example www.example.com
www.example. com 文件:
www.example. com 文件: