Esempio n. 1
0
class Form(FramelessWindow):
    # 继承QRibbonWindow
    def __init__(self):
        super(Form, self).__init__()
        self.resize(800, 600)
        self.init_ui()

    def init_ui(self):
        ribbon_toolbar = QRibbonToolBar(self)
        # 标题栏
        ribbon_toolbar.title = '这是一个标题'
        ribbon_toolbar.add_widget(icon='image/left.ico', left=True)
        ribbon_toolbar.add_widget(icon='image/right.ico', left=False)
        # 菜单栏
        menu = ribbon_toolbar.add_menu('开始')
        # 工具组
        group = ribbon_toolbar.add_group('剪切板', menu)
        # 工具组右下角按钮
        corner = group.corner
        corner.clicked.connect(lambda: print('test'))
        # 工具组添加widget
        label = QLabel()
        label.setPixmap(QPixmap('image/cut.png'))
        group.add_widget(label)
        group = ribbon_toolbar.add_group('字体', menu)
        label = QLabel()
        label.setPixmap(QPixmap('image/font.png'))
        group.add_widget(label)
        # -------------------------------------------
        menu = ribbon_toolbar.add_menu('插入')
        group = ribbon_toolbar.add_group('剪切板11', menu)
        group = ribbon_toolbar.add_group('字体11', menu)
        menu = ribbon_toolbar.add_menu('设计')
        menu = ribbon_toolbar.add_menu('布局管理')

        self.setWindowIcon(QIcon('image/left.ico'))
        self.addToolBar(ribbon_toolbar)

        self.centralwidget = QWidget(self)
        gridLayout = QGridLayout(self.centralwidget)
        gridLayout.setContentsMargins(self.margin, self.margin, self.margin,
                                      self.margin)
        self.calendarWidget = QCalendarWidget(self.centralwidget)
        self.calendarWidget.setMouseTracking(True)
        gridLayout.addWidget(self.calendarWidget, 0, 0, 1, 1)
        self.setCentralWidget(self.centralwidget)
        self.centralwidget.setMouseTracking(True)
        dockewidget = QDockWidget(self)
        dockewidget.setMouseTracking(True)
        self.addDockWidget(Qt.LeftDockWidgetArea, dockewidget)
        statusbar = QStatusBar(self)
        statusbar.setMouseTracking(True)
        self.setStatusBar(statusbar)

        ribbon_toolbar.installEventFilter(self)
        self.calendarWidget.installEventFilter(self)