mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2024-12-26 08:01:32 +08:00
48c4106b7f
* Update Python bindings * Add X11Extras to setup.py for Linux builds
76 lines
3.1 KiB
Python
76 lines
3.1 KiB
Python
import os
|
|
import sys
|
|
|
|
from PyQt5 import uic
|
|
from PyQt5.QtCore import Qt, QTimer, QDir
|
|
from PyQt5.QtGui import QCloseEvent
|
|
from PyQt5.QtWidgets import (QApplication, QLabel, QCalendarWidget, QFrame, QTreeView,
|
|
QTableWidget, QFileSystemModel)
|
|
|
|
from PyQtAds import QtAds
|
|
|
|
UI_FILE = os.path.join(os.path.dirname(__file__), 'mainwindow.ui')
|
|
MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
|
|
|
|
|
|
class MainWindow(MainWindowUI, MainWindowBase):
|
|
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
|
|
self.setupUi(self)
|
|
|
|
QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.OpaqueSplitterResize, True)
|
|
QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.XmlCompressionEnabled, False)
|
|
self.dock_manager = QtAds.CDockManager(self)
|
|
|
|
# Set central widget
|
|
calendar = QCalendarWidget()
|
|
central_dock_widget = QtAds.CDockWidget("CentralWidget")
|
|
central_dock_widget.setWidget(calendar)
|
|
central_dock_area = self.dock_manager.setCentralWidget(central_dock_widget)
|
|
central_dock_area.setAllowedAreas(QtAds.DockWidgetArea.OuterDockAreas)
|
|
|
|
# create other dock widgets
|
|
file_tree = QTreeView()
|
|
file_tree.setFrameShape(QFrame.NoFrame)
|
|
file_model = QFileSystemModel(file_tree)
|
|
file_model.setRootPath(QDir.currentPath())
|
|
file_tree.setModel(file_model)
|
|
data_dock_widget = QtAds.CDockWidget("File system")
|
|
data_dock_widget.setWidget(file_tree)
|
|
data_dock_widget.resize(150, 250)
|
|
data_dock_widget.setMinimumSize(100, 250)
|
|
file_area = self.dock_manager.addDockWidget(QtAds.DockWidgetArea.LeftDockWidgetArea, data_dock_widget, central_dock_area)
|
|
self.menuView.addAction(data_dock_widget.toggleViewAction())
|
|
|
|
table = QTableWidget()
|
|
table.setColumnCount(3)
|
|
table.setRowCount(10)
|
|
table_dock_widget = QtAds.CDockWidget("Table")
|
|
table_dock_widget.setWidget(table)
|
|
table_dock_widget.setMinimumSizeHintMode(QtAds.CDockWidget.MinimumSizeHintFromDockWidget)
|
|
table_dock_widget.resize(250, 150)
|
|
table_dock_widget.setMinimumSize(200, 150)
|
|
self.dock_manager.addDockWidget(QtAds.DockWidgetArea.BottomDockWidgetArea, table_dock_widget, file_area)
|
|
self.menuView.addAction(table_dock_widget.toggleViewAction())
|
|
|
|
properties_table = QTableWidget()
|
|
properties_table.setColumnCount(3)
|
|
properties_table.setRowCount(10)
|
|
properties_dock_widget = QtAds.CDockWidget("Properties")
|
|
properties_dock_widget.setWidget(properties_table)
|
|
properties_dock_widget.setMinimumSizeHintMode(QtAds.CDockWidget.MinimumSizeHintFromDockWidget)
|
|
properties_dock_widget.resize(250, 150)
|
|
properties_dock_widget.setMinimumSize(200,150)
|
|
self.dock_manager.addDockWidget(QtAds.DockWidgetArea.RightDockWidgetArea, properties_dock_widget, central_dock_area)
|
|
self.menuView.addAction(properties_dock_widget.toggleViewAction())
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app = QApplication(sys.argv)
|
|
|
|
w = MainWindow()
|
|
w.show()
|
|
app.exec_()
|