python - 菜单和工具栏

标签 python pyside menubar qwidget qmainwindow

我是编程新手,我创建了一个简单的应用程序,其中包含 Python 和 PySide 中的一个类,用于操作电话账单 csv 文件。现在我也想要一个移动选项。

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

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并仅添加您想要的内容。

关于python - 菜单和工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31934369/

相关文章:

python - 当小部件失去焦点时如何拦截

java - 如何在 Java 应用程序中设置菜单栏的键盘快捷键?

python - matplotlib:创建两个(堆叠的)具有共享 X 轴但独立 Y 轴值的子图

python - Tkinter 窗口在退出时崩溃

python - 如何在选中复选框时启用行编辑

python - 为什么 QThread 只打印两个线程调用之一?

python - 使用 Python 从大型文本文件到稀疏矩阵

python - 如何断言模拟是用特定类型而不是实例调用的?

html - 如何制作CSS水平导航菜单?

jquery - 如何通过 jQuery 关闭 Foundation 中展开的移动顶部栏?