Python 3.x 如何从类访问pyqt5小部件到另一个静态函数?

Python 3.x 如何从类访问pyqt5小部件到另一个静态函数?,python-3.x,pyqt,pyqt5,Python 3.x,Pyqt,Pyqt5,我的疑问是,我已经用PYQT5创建了动态多摄像头GUI。因为我在类中创建了滚动区域小部件,并且在并行过程中使用了多处理,所以我在静态函数中声明了webcam帧捕获函数,因为多处理仅在静态函数中支持。我真正的疑问是,如果单击按钮调用多进程函数,它会重定向到静态函数,我为网络摄像头帧读取创建了静态函数。我需要在scroll_区域内动态创建一个按钮或标签,以在PyQt5而不是cv2.imshowwebcam,webcam_框架中显示网络摄像头视频。现在的问题是,当我试图在静态函数中调用self.scr

我的疑问是,我已经用PYQT5创建了动态多摄像头GUI。因为我在类中创建了滚动区域小部件,并且在并行过程中使用了多处理,所以我在静态函数中声明了webcam帧捕获函数,因为多处理仅在静态函数中支持。我真正的疑问是,如果单击按钮调用多进程函数,它会重定向到静态函数,我为网络摄像头帧读取创建了静态函数。我需要在scroll_区域内动态创建一个按钮或标签,以在PyQt5而不是cv2.imshowwebcam,webcam_框架中显示网络摄像头视频。现在的问题是,当我试图在静态函数中调用self.scrollarea时,它是在它显示的未定义的类中创建的。我尝试使用全局变量,但仍然没有定义它

这是我的源代码

从PyQt5导入QtCore、QtGui、QtWidgets 从PyQt5.QtGui导入QIcon、QPixmap 从PyQt5.qtwidts导入QMainWindow、QShortcut、QComboBox、QAction、QMessageBox、QInputDialog、QPlainTextEdit、\ QTextEdit、QDockWidget、QListWidget、QLineEdit、QStyleFactory、QGridLayout 从pyqtgraph.Qt导入QtGui,QtCore 将pyqtgraph作为pg导入 导入qdarkstyle 从PyQt5.QtGui导入QIcon、QFont 从PyQt5.QtCore导入QDir、Qt、QUrl、QSize、QThread、pyqtSignal、pyqtlot 从PyQt5.qtmedia导入QMediaContent、QMediaPlayer 从PyQt5.QtMultimediaWidgets导入QVideoWidget 从PyQt5.qtwidts导入QApplication、QFileDialog、QHBoxLayout、QLabel、, QPushButton、QSizePolicy、QSlider、QStyle、QVBoxLayout、QWidget、QStatusBar 导入多处理 类Ui\u MainWindowQMainWindow: def u_init__self,父项=无: superUi\u主窗口,self.\u初始化\u父窗口 self.clicked=pyqtSignal self.u创建 scroll\u area=self.scroll\u area\u 2 self.resize662582 def widgets_creationself: self.centralwidget=qtwidts.QWidget布局创建 self.setWindowTitleWebcam self.gridLayout=qtwidts.QGridLayoutself.centralwidget self.scrollArea=QtWidgets.QScrollAreaself.centralwidget self.scrollArea.SetWidgetResizebletRue self.scrollAreaWidgetContents=QtWidgets.QWidget self.scrollAreaWidgetContents.setGeometryQtCore.QRect0,0642541 self.gridLayout_2=qtwidts.qgridlayoutslf.scrollAreaWidgetContents self.frame=qtwidts.QFrame self.scrollAreaWidgetContents框架,用于存放网络摄像头和视频播放器 self.frame.setFrameShapeQtWidgets.QFrame.StyledPanel self.frame.setFrameShadowQtWidgets.QFrame.Raised self.gridLayout_2.addWidgetself.frame,0,0,1,1 self.frame_2=qtwidts.QFrameself.scrollAreaWidgetContents保存图形的框架 self.frame_2.setFrameShapeQtWidgets.QFrame.StyledPanel self.frame_2.setframeshadowqtwidts.QFrame.Raised self.gridLayout_2.addWidgetself.frame_2,0,1,1,1 self.scrollArea.setWidgetself.scrollAreaWidgetContents self.gridLayout.addWidgetself.scrollArea,0,0,1,1 self.setCentralWidgetself.centralwidget 全局滚动区域 self.scrollArea_2=qtwidts.QScrollAreaself.frame self.scrollArea_2.setGeometryQtCore.qrect10560441291 self.scrollArea_2.setWidgetResizebleTrue self.scrollArea_2.setObjectNamescrollArea_2 self.scrollAreaWidgetContents_2=QtWidgets.QWidget self.scrollAreaWidgetContents_2.setGeometryQtCore.QRect0,0439289 self.scrollAreaWidgetContents_2.setObjectNamescrollAreaWidgetContents_2 self.scrollArea_2.setWidgetself.scrollArea WidgetContents_2 全局滚动区域 scroll\u area=self.scroll\u area\u 2 self.add_video=QpushButtonAnd Camera+,self.frame self.add_video.move40605 self.add\u video.clicked.connectself.video\u frames\u创建 def video_frames_creationself: cam_端口=0 a=多处理。Processtarget=Ui\u MainWindow.Accurance\u main,args=cam\u端口 a、 开始 @静力学方法 def精度\u主凸轮\u端口: 全局滚动区域 button=QPushButtonscroll\u区域问题是我需要在滚动区域内创建一个按钮 col_val=0 行值=0 按钮=QPushButton 如果col_val==3: col_val=0 行值+=1 网格布局图3.addWidgetbutton,行值,列值,1,1 其他: 网格布局图3.addWidgetbutton,行值,列值,1,1 col_val+=1 预测的标签=dequemaxlen=窗口大小 cap=cv2.VideoCapturevideo 尽管如此: 成功,帧=cap.read 如果成功: button.seticonsiszeqsize400,400 button.setIconQtGui.QIconQPixmap.fromImagep 如果uuuu name uuuuu==\uuuuuuuu main\uuuuuuuu: 导入系统 app=qtwidts.QApplicationsys.argv app.setStyleSheet'QMainWindow{背景色:暗灰色;边框:1px纯黑色;}' MainWindow=QtWidgets.QMainWindow ui=ui\u主窗口 ui.show sys.exitapp.exec