美文网首页
PySide2学习记录(六):复杂界面

PySide2学习记录(六):复杂界面

作者: 3ni | 来源:发表于2018-11-24 14:18 被阅读0次

    Python版本3.7
    PySide2 Version: 5.14.1
    官方文档:http://doc.qt.io/qtforpython/index.html

    想要实现功能强大,复杂的界面,就需要借助于QMainWindow,下面是一个例子,仅仅只有界面,并没有连接相关信号与槽。

    from PySide2.QtWidgets import QApplication, QMainWindow, QToolBar, \
         QStatusBar, QAction, QCommonStyle, QDockWidget, QCalendarWidget, QWidget, QListView
    from PySide2.QtGui import QIcon
    from PySide2.QtCore import Qt
    
    app = QApplication()
    mainwindow = QMainWindow()
    # 设置界面最小尺寸
    mainwindow.setMinimumSize(900, 600)
    
    # 创建工具栏对象
    tool_bar = QToolBar()
    
    open_dir_action = QAction(QIcon(QCommonStyle().standardPixmap(QCommonStyle.SP_DirIcon)), '打开目录')
    tool_bar.addAction(open_dir_action)
    open_file_action = QAction(QIcon(QCommonStyle().standardPixmap(QCommonStyle.SP_FileIcon)), '新建文件')
    tool_bar.addAction(open_file_action)
    open_delete_action = QAction(QIcon(QCommonStyle().standardPixmap(QCommonStyle.SP_TrashIcon)), '删除')
    tool_bar.addAction(open_delete_action)
    
    dock_calendar_widget = QDockWidget()
    dock_calendar_widget.setWidget(QCalendarWidget())
    dock_listview_widget = QDockWidget()
    dock_listview_widget.setWidget(QListView())
    
    # 添加在dock widgets区域的右边,Qt是一个包含了各种常量的包
    mainwindow.addDockWidget(Qt.RightDockWidgetArea, dock_calendar_widget)
    mainwindow.addDockWidget(Qt.RightDockWidgetArea, dock_listview_widget)
    
    # 添加一个空的widget
    mainwindow.setCentralWidget(QWidget())
    
    # 创建状态栏对象
    statusbar = QStatusBar()
    statusbar.showMessage('我是statusbar')
    
    # 添加工具栏
    mainwindow.addToolBar(tool_bar)
    # 添加状态栏
    mainwindow.setStatusBar(statusbar)
    mainwindow.show()
    app.exec_()
    

    运行截图:

    图1

    首先需要分析QMainWindow的布局。

    图2

    结合图二和图一,图一中的1号就是Toolbars区域,这块区域是可以拖动的,2号对应着Central Widget区域,这里一般放置主要的widget,3号对应着Status Bar,这里常常是提示用户的文字,4号对应着Dock Widgets区域,这里上下左右都是可以放置,我是放在了右边,并且这块区域可以单独拖拽出来并关闭的。还有Menu Bar就是菜单栏,windows上是在标题栏下面,linux和MacOS在最顶上。

    QToolBar
    用于管理工具栏相关的类(注意是可以拖动调整位置的)。一般使用addAction()函数进行添加,有以下几种添加方式:
    addAction(action)传入一个QAction对象进行添加。本文所用的就是这个方式。
    addActions(actions)传入一个包含QAction对象的列表进行添加。
    addAction(text)传入一个文本,内部会以这个文本创建一个QAction对象,然后返回给你。
    addAction(icon, text)传入一个QIcon对象(管理图标的类,可以使用QIcon("image.jpg")来创建一个自定义的图标)和一个文本来创建,同样会返回创建好的QAction对象。

    其中使用到了QCommonStyle,这个类是用于管理公共风格的类,比如按钮在不同系统中就有不同的外观。

    QAction
    一般在菜单栏和工具栏,还有右键菜单都会使用这个类,具体描述建议看官方解释。

    QDockWidget
    装载一个widget,以便可以利用QDockWidget对象放入到mainwindow中的dock widgets区域,并且可以浮动在窗口的顶层。

    QStatusBar
    状态栏对象,用于显示各种状态信息和提示信息。

    QCalendarWidget
    日历控件,方便用户进行时间的选择,具体使用方法参考官方手册。

    QListView
    用于显示列表的控件,以后再详细看。

    还有setCentralWidget用于设置中心区域的widget,我这里为了方便直接使用了一个空widget来进行填充。

    友情链接:
    QMainWindow
    QToolBar
    QAction
    QStyle
    QIcon
    QDockWidget
    QStatusBar
    QCalendarWidget

    相关文章

      网友评论

          本文标题:PySide2学习记录(六):复杂界面

          本文链接:https://www.haomeiwen.com/subject/jpitqqtx.html