0

MainWindow(QMainWindow)的 PyQt4 GUI 类现在已经增长,我想以某种方式拆分它。问题是所有处理信号的众多功能都非常相互关联并影响类的其他功能。有没有办法把它分成几个类/文件?也许将所有信号分为一类?我真的不明白如何在技术上做到这一点......我还听说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()
   ...
4

1 回答 1

1

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

我认为从你的程序到一个更分层的程序并不是没有痛苦的,我可以说:你应该早点想到这一点,但我没有。=P 要设计主窗口及其子窗口,QTdesigner 非常方便。

是的,AFAIK 一个类不应该继承多个 PyQt 类。

于 2012-07-12T16:23:38.277 回答