菜单和工具栏

Menus and toolbar

我是编程新手,我在 Python 和 PySide 中创建了一个简单的应用程序 class 来处理 phone bill csv 文件。现在我也想要一个移动选项。

当我的 class 继承自 QWidget 时,如何添加菜单栏?我是否应该编写另一个继承自 QMainWindow 的 class,然后将我的第一个 class 的实例作为中央小部件?这是正确的做法吗?

class MyWidget(QtGui.QWidget):

    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)
        ....


class MyWindow(QtGui.QMainWindow):

    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)

        widget = MyWidget()
        self.setCentralWidget(widget)
        ...

不需要 QMainWindow,您只需在您的小部件中创建一个 QMenuBar

class MyWidget(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)
        self.menu=QtGui.QMenuBar()
        self.menu.addAction("do something")
        layout=QtGui.QVBoxLayout()
        layout.addWidget(self.menu)

QMainWindow 基本上是一个已经具有菜单栏、工具栏、状态栏等布局的小部件。如果您不需要所有这些功能,您可以使用简单的QWidget 并只添加您想要的内容。