def main(): app = QApplication() window = QMainWindow() window.setMinimumSize(QSize(640, 480)) imageFlow = FlowWidget(window) proxy = QSortFilterProxyModel() proxy.setFilterRole(FlowModel.FileNameRole) proxy.setSortRole(FlowModel.FileNameRole) imageFlow.setProxyModel(proxy) searchFilter = QLineEdit() searchFilter.textChanged.connect( lambda text: proxy.setFilterWildcard(text)) layout = QVBoxLayout() layout.addWidget(searchFilter) layout.addWidget(imageFlow) widget = QWidget() widget.setLayout(layout) window.setCentralWidget(widget) window.show() # 画像を同期読み込み # for i, filePath in enumerate(glob.glob('C:/tmp/test_images2/*.png')): # image = QImage(filePath).scaled(100, 100) # item = FlowItem(filePath) # item.setImage(image) # imageFlow.appendItem(item) # 画像を非同期読み込み loader = BatchImageLoader() loader.addCallback(ImageLoadingCallback.LOADED, lambda img: img.scaled(100, 100)) tasks = {} def _on_load_image(taskId): filePath = tasks[taskId] image = loader.image(taskId) item = FlowItem(filePath, image) imageFlow.appendItem(item) def _on_load_complete(): proxy.sort(0) loader.loaded.connect(_on_load_image) loader.completed.connect(_on_load_complete) for filePath in glob.iglob('C:/tmp/test_images/*.png'): taskId = loader.addFile(filePath) tasks[taskId] = filePath loader.loadAsync() sys.exit(app.exec_())
def _main(): app = QApplication([]) window = QMainWindow() window.setMinimumSize(800, 600) player_one_view = Client.PlayerView(window) game_session = Server.GameSession() # zone1.clicked.connect(log.addEntry) # QObject.connect(zone1,SIGNAL('clicked()'),log.addEntry) # window.setCentralWidget(log) # mylabel.setSizePolicy(QSizePolicy.Expanding,QSizePolicy.Expanding) window.show() # mylabel.adjustSize() app.exec_() print(str(window.size()))
from PySide2.QtWidgets import (QApplication, QMainWindow) from player_view import PlayerView from game_master import GameMaster app = QApplication([]) window = QMainWindow() window.setMinimumSize(800, 600) playerOneView = PlayerView(window) gameMaster = GameMaster() # zone1.clicked.connect(log.addEntry) # QObject.connect(zone1,SIGNAL('clicked()'),log.addEntry) # window.setCentralWidget(log) # mylabel.setSizePolicy(QSizePolicy.Expanding,QSizePolicy.Expanding) window.show() # mylabel.adjustSize() app.exec_() print(str(window.size()))
for category in d: category_item = QTreeWidgetItem() category_item.setText(0, category) for elem_name in d[category]: it = QTreeWidgetItem() it.setText(0, elem_name) category_item.addChild(it) self.addTopLevelItem(category_item) if __name__ == "__main__": app = QApplication() w = QMainWindow() w.setMinimumSize(640, 480) elems = ElementTree() elems.create_from_dict(ELEMENTS) elems.expandAll() dw = QDockWidget() dw.setWidget(elems) dw.setWindowTitle('Elements') dw.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) w.addDockWidget(Qt.LeftDockWidgetArea, dw) sim = Simulator() schem = Schematic() sim.root = schem.root g = Gate('or', 1, 2, False)
def main(): app = QApplication() window = QMainWindow() window.setMinimumSize(600, 600) tree = DirTreeWidget(window) tree.setRootDirectoryPaths(['C:\\', 'D:\\']) # tree.setSelectionMode(QAbstractItemView.ExtendedSelection) # tree.itemSelectionChanged.connect(lambda x, y: print(tree.selectedItems())) # tree.itemDoubleClicked.connect(lambda idx: print(f'doubleclick: {idx}')) tree.setContextMenuPolicy(Qt.CustomContextMenu) def _ctx_menu(point): def _open_directory(path): subprocess.call(f'explorer "{path()}"', shell=True) menu_items = { u'フォルダを開く': lambda path: _open_directory(path), } menu = QMenu() for label in menu_items.keys(): menu.addAction(label) executed_action = menu.exec_(tree.mapToGlobal(point)) action = menu_items[executed_action.text()] item = tree.currentItem() action(item.path) tree.customContextMenuRequested.connect(_ctx_menu) files = FileListWidget(window) files.setViewMode(QFileListViewMode.ListMode) files.setSelectionMode(QAbstractItemView.ExtendedSelection) # files.itemSelectionChanged.connect(lambda x, y: print(tree.selectedItems())) # files.itemClicked.connect(lambda idx: print(f'click: {idx}')) # files.itemDoubleClicked.connect(lambda idx: print(f'doubleclick: {idx}')) iconLoader = QFileIconLoader(None) def _updateFiles(index): item = tree.itemFromIndex(index) filePaths = list(item.path().glob('*')) iconLoader.reset(filePaths) def _set_icon(result): FileListModel.icons[result.filePath] = result.icon files.model().refresh() iconLoader.loaded.connect(_set_icon) # iconLoader.completed.connect(print) iconLoader.loadAsync() files.setDirectoryPath(tree.itemFromIndex(index).path()) tree.itemSelectionChanged.connect( lambda x, y: _updateFiles(tree.selectedIndexes()[0])) def _changeDir(index): item = files.itemFromIndex(index) print(item.path()) files.itemDoubleClicked.connect(_changeDir) splitter = QSplitter() splitter.addWidget(tree) splitter.addWidget(files) window.setCentralWidget(splitter) window.show() app.exec_()
from PySide2.QtWidgets import QApplication, QMainWindow, QToolBar, \ QStatusBar, QAction, QCommonStyle, QDockWidget, QCalendarWidget, QWidget, QListView from PySide2.QtGui import QIcon from PySide2.QtCore import Qt ''' pip install pyside2 ''' 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是一个包含了各种常量的包