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

2018-11-24  本文已影响0人  3ni

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

上一篇下一篇

猜你喜欢

热点阅读