python3,PyQt 4:为GUI控件拆分大类

2024-04-26 15:06:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我的pyqt4gui的类MainWindow(QMainWindow)现在已经增长了,我想以某种方式将其拆分。问题是,所有处理信号的函数都是相互关联的,并影响类的其他函数。有没有办法把它分成几个类/文件?也许把所有的信号分成一个类?我真的不明白如何从技术上做到这一点。。。我还听说Qt(或PyQt)对多重继承有一些限制,这可以解决我猜想的问题(同样,对我来说不太明显)。在

就像它现在的样子一样(当然非常简单):

calss MainWindow(QMainWindow):
   ...
   def f1(self):
      if self.a1 == '...':
       ...
   def f2(self):
      if self.a2 == '...':
       ...
   def update(self):
      self.f3()
      self.f4()
      self.lineEdit.setText(self.a3)
      ...
   ...
   def on_radioButton_toggled(self):
      if self.radioButton.isChecked():
         self.a1 = '...'
   def on_comboBox_currentIndexChanged(self):
      if self.checkBox.isChecked():
         self.a2 = '...'
         self.f1()
      else:
         self.f2()
      self.update()
   ...

Tags: 函数selfa2if信号ondefa1
1条回答
网友
1楼 · 发布于 2024-04-26 15:06:14

在我的应用程序中,我是这样做的,有一个主窗口包含子窗口(框架和东西…),主窗口基本上做两件事:初始化它的子窗口并连接它们之间的信号。像这样,你有一个视图的层次结构,处理这个大问题要简单得多。在

我认为从你的程序到一个更层次化的程序并没有一个无痛的转变,我可以说:你应该早点知道,但我没有 设计主窗口及其子窗口QTdesigner非常方便。在

是的,一个类不应该继承多个PyQt类的形式。在

相关问题 更多 >