我最近才开始编程和
Python(PyQt).我有我的主要QMainWindow类.但是我想将它与UI小部件分开,以便所有的Windows东西(菜单,工具栏,常见按钮)都在QMainWindow中,但所有程序/ UI特定的小部件(pusgbuttons,组合框,图像,复选框等)都在一个单独的QWidget类.但我不知道我是否正确地做到这一点.
>我有一个问题的布局 – 一些看不见的是覆盖菜单,使它们不能被鼠标点击,我想我没有正确添加我的UI小部件到主窗口
这是我如何做到的:
class MyMainWindow(QMainWindow):
def __init__(self, parent = None):
super(MyMainWindow, self).__init__(parent)
self.main_widget = QWidget(self)
...
self.form_widget = FormWidget(self)
#This is my UI widget
self.main_layout = QVBoxLayout(self.main_widget)
self.main_layout.sizeConstraint = QLayout.SetDefaultConstraint
self.main_layout.addWidget(self.form_widget.main_widget)
#form_widget has its own main_widget where I put all other widgets onto
self.main_widget.setLayout(self.main_layout)
self.setCentralWidget(self.main_widget)
>我看过其他Python程序,其中应用程序被分解成很多小的代码文件(据我所知,主程序中的所有内容都不可读或无法管理).
你有什么建议将代码分成小块?怎么做得更好?或者UI可以在一个大的地方?我应该将UI代码/类分成单独的文件吗?
谢谢.
[解决了]
我发现我的错误 – 我从UI小部件类中删除了main_widget(现在所有UI小部件都直接放在UI类小部件本身上),只能这样做:
self.main_layout.addWidget(self.form_widget)
没有更多的菜单问题