pyqt5 树节点点击实现多窗口切换

# coding=utf-8

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        hbox = QHBoxLayout(self)
        left = QFrame(self)
        # QFrame 控件添加StyledPanel样式能使QFrame 控件之间的界限更加明显
        #left.setFrameShape(QFrame.StyledPanel)
        right = QFrame(self)
        #right.setFrameShape(QFrame.StyledPanel)
        splitter1 = QSplitter(Qt.Horizontal)
        splitter1.addWidget(left)
        splitter1.setSizes([20,]) #设置分隔条位置
        splitter1.addWidget(right)
        hbox.addWidget(splitter1)
        self.setLayout(hbox)

        # 树
        self.tree = QTreeWidget(left)
        self.tree.setStyleSheet("background-color:#eeeeee;border:outset;color:#215b63;")
        self.tree.setAutoScroll(True)
        self.tree.setEditTriggers(QAbstractItemView.DoubleClicked | QAbstractItemView.EditKeyPressed)
        self.tree.setTextElideMode(Qt.ElideMiddle)
        #self.tree.setIndentation(30)
        self.tree.setRootIsDecorated(True)
        self.tree.setUniformRowHeights(False)
        self.tree.setItemsExpandable(True)
        self.tree.setAnimated(False)
        self.tree.setHeaderHidden(True)
        self.tree.setExpandsOnDoubleClick(True)
        self.tree.setObjectName("tree")

        # 设置根节点
        root = QTreeWidgetItem(self.tree)
        root.setText(0, ‘系统管理‘)
        # 设置树形控件的列的宽度
        #self.tree.setColumnWidth(0, 150)
        # 设置子节点1
        child1 = QTreeWidgetItem()
        child1.setText(0, ‘增加人员信息‘)
        root.addChild(child1)
        # 设置子节点2
        child2 = QTreeWidgetItem(root)
        child2.setText(0, ‘查询人员信息‘)
        # 加载根节点的所有属性与子控件
        self.tree.addTopLevelItem(root)
        # 设置stackedWidget
        self.stackedWidget = QStackedWidget(right)

        # 设置第一个面板
        self.form1 = QWidget()
        self.formLayout1 = QHBoxLayout(self.form1)
        self.label1 = QLabel()
        self.label1.setText("增加人员信息面板")
        self.label1.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
        self.label1.setAlignment(Qt.AlignCenter)
        self.label1.setFont(QFont("Roman times", 50, QFont.Bold))
        self.formLayout1.addWidget(self.label1)

        # 设置第二个面板
        self.form2 = QWidget()
        self.formLayout2 = QHBoxLayout(self.form2)
        self.label2 = QLabel()
        self.label2.setText("查询人员信息面板")
        self.label2.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
        self.label2.setAlignment(Qt.AlignCenter)
        self.label2.setFont(QFont("Roman times", 50, QFont.Bold))
        self.formLayout2.addWidget(self.label2)

        # 将两个面板,加入stackedWidget
        self.stackedWidget.addWidget(self.form1)
        self.stackedWidget.addWidget(self.form2)

        # 树节点监听事件
        self.tree.clicked.connect(self.onClicked)

        # 窗口最大化
        self.showMaximized()
        self.setWindowTitle(‘树窗口分隔案列‘)
        self.show()

    def onClicked(self,qmodeLindex):
        item=self.tree.currentItem()
        print(‘Key=%s,value=%s‘%(item.text(0),item.text(1)))
        if item.text(0) == ‘增加人员信息‘:
            self.on_pushButton1_clicked()
        elif item.text(0) == ‘查询人员信息‘:
            self.on_pushButton2_clicked()
        else:
            print(‘返回主界面‘)

    # 按钮一:打开第一个面板
    def on_pushButton1_clicked(self):
        self.stackedWidget.setCurrentIndex(0)

    # 按钮二:打开第二个面板
    def on_pushButton2_clicked(self):
        self.stackedWidget.setCurrentIndex(1)

if __name__ == ‘__main__‘:
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

  

原文地址:https://www.cnblogs.com/pythonClub/p/10260707.html

时间: 2024-10-16 03:30:46

pyqt5 树节点点击实现多窗口切换的相关文章

ExtJs 4.2 treePanel 点击树节点 传送参数到后台(多个参数)

//***********************************************左边树开始*********************************************** //分组树Store var treeStore = Ext.create('Ext.data.TreeStore', { proxy: { type: 'ajax', url: "/Handler/StorePositionLayoutHandler.ashx?func=getbystores

Easyui 实现点击不同树节点打开不同tab页展示不同datagrid表数据设计

实现点击不同树节点打开不同tab页展示不同datagrid表数据设计 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 需求描述 如上图, 1.点击左侧树,叶子节点,打开不同的tab页,加载与节点对应的表数据 2.在上述打开页面中,进行新增,编辑,复制等操作,确保新增.复制等操作生成的数据只在该页面可见. 涉及思路与关键代码 1.单击左侧树时,叶子节点时,新增.激活一个tab页,打开.激活之前,设置tab页id属性值为树节点的ID,设置title属性为节点

树节点

private void zimulu(TreeNode node)//在点开节点的一瞬间,解析当前目录的第三级目录 { try//对错误或者权限不作处理 { //根据获得的完整目录得到该目录下的子目录 foreach (var dirinfor in new DirectoryInfo(node.Tag.ToString()).GetDirectories()) { //依据目录的完整目录获取其子目录,否则找不到文件 //以子目录的文件名为名称创建树节点 var n = new TreeNod

easyUI树形节点点击和动态添加Tab-

easyUI是一种基于jQuery的UI框架,可以直接阅读官网的API教程学习,最近做的项目要用到这个框架,就一边看一边做,先看一下动态添加Tab,实际项目中我们都是希望点击一个节点,增加一个iframe的窗口出来,但是昨天看着API做一个简单的点击A标签增加iframe,死活就是不行,晚上回去终于搞定,看一下官方的例 [html] view plain copy print? function addTab(title, url){ if ($('#tt').tabs('exists', ti

ext 树节点操作

ext 树节点操作 tree :树    node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parentNode 4.判断是否有父节点 node.parentNode==null 5.判断是否有子节点 node.hasChildNodes() 6.获取下一级所有子节点 node.eachChild(function(child) { }) 7.获取选择的节点 tree.getSelectionMode

转:zTree树控件扩展篇:巧用zTree控件实现文本框输入关键词自动模糊查找zTree树节点实现模糊匹配下拉选择效果

是否可以借助于zTree实现文本框输入关键词自动模糊匹配zTree下拉树,然后选择下拉树内节点显示在文本框内且隐藏下拉树. 看到这个需求脑子里头大致已经想到了要如何实现这样一个需求,当时是限于时间问题所以没有动手处理.今天闲来无事琢磨了一下这个需求.我的解决思路如下所示: 1.监听文本框的onkeyup事件:实时传递其值到某个函数: 2.编写某个函数接收文本框的值通过zTree的模糊查找方法getNodesByParamFuzzy(key,value)获得: 3.将匹配到的节点列表结合重新赋值给

TreeView 树节点的处理

TreeView 树节点的处理 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10

zTree取消树节点选中的背景色

点击树节点的时候是ztree给树加了个class:    curSelectedNode 所以最简单的清除树节点的背景色的方法是移除其有背景色的class: $(".curSelectedNode").removeClass("curSelectedNode"); 原文地址:https://www.cnblogs.com/qlqwjy/p/8386994.html

boost库使用:仿SGI-STL实现的一个树节点内存allocator

1 ////////////////////////////////////////////////////////////////////////// 2 //code by hzs 3 //email: [email protected] 4 //Last modified: 2014-5-18 21:05 5 ////////////////////////////////////////////////////////////////////////// 6 7 #ifndef _TRE