我是Qt编程的新手,到目前为止,我只编写了小复杂的应用程序,通常遵循紧紧提供的示例。
现在,我被要求为一个基于嵌入式Linux的现有产品(收银机,如果有关系的话)编写(重新)配置GUI,该Linux包含一组大型的,可能会扩展的“配置页面”。一些例子:
[我开始在Qt Designer中设计界面,但我很快意识到,如果我只是想制作一个以前版本的“更大版本”,我将获得大量意大利面条代码。
由此产生了原始的,非常笼统的问题:
在带有嵌套容器(QToolBox,QTabWidget等)的复杂接口中,对插槽进行分区的“批准方式”(如果有的话)是什么,以便在“ MainWindow”中不存在成千上万的插槽?]]
欢迎使用针对非平凡示例的“最佳做法”的指针。
我目前处于设计/原型制作阶段,我可以很轻松地进行更改;当然,以后的更改可能不太方便。
我目前的设计很标准:
class MWindow(QMainWindow):
def __init__(self):
super(MWindow, self).__init__()
uic.loadUi('app.ui', self)
...
app = QApplication(sys.argv)
mw = MWindow()
mw.show()
sys.exit(app.exec_())
我很快发现,如果我想进行正确的输入验证并且是“用户友好的”,我可以为每个“页面”处理数十个插槽(例如:从编辑的IP地址自动生成网络掩码/广播,更不用说了以太网配置和WiFi配置之间的充足代码重复)。目前尚不需要,但是我know
在其他情况下,我会尝试使所有与UI相关的处理都更加本地化;例如:
[OTOH一些现实生活中的例子(请参阅:Wireshark's MainWindow)似乎朝着相反的方向:“一个篮子里的所有东西”。
是否有任何经过合理合并的最佳做法建议来处理这种情况?
更重要的是:如果我坚持将代码拆分为一种“分而治之”的方法,那将如何转化为QtDesigner /代码关系? (我绝对不想求助于手工编码的GUI)。
根据要求重写以澄清。免责声明:我是Qt编程的一个相对较新手,到目前为止,我只编写了一些复杂性小的应用程序,通常遵循紧密提供的示例。 ...
我想Qt提供的样本将决定最佳实践,因为大多数开发人员会从这些经验入手,并根据它们制定标准。