python 中pyqt5 树节点点击实现多窗口切换问题


Posted in Python onJuly 04, 2019

下面通过实例代码给大家介绍python 中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_())

ps:下面给大家介绍下python pyqt5 点击按钮来打开另一个窗口

import ui_denglu as dl
import ui_zhuche as zc
from PyQt5.QtWidgets import QApplication,QMainWindow,QDialog
import sys
class parentWindow(QMainWindow):
 def __init__(self):
  QMainWindow.__init__(self)
  self.main_ui = dl.Ui_submit_user()
  self.main_ui.setupUi(self)
class childWindow(QDialog):
 def __init__(self):
  QDialog.__init__(self)
  self.child=zc.Ui_MainWindow()
  self.child.setupUi(self)
if __name__=='__main__':
 app=QApplication(sys.argv)
 window=parentWindow()
 child=childWindow()
 #通过toolButton将两个窗体关联
 btn=window.main_ui.pushButton_new
 btn.clicked.connect(child.show)
 # 显示
 window.show()
 sys.exit(app.exec_())

python 中pyqt5 树节点点击实现多窗口切换问题

python 中pyqt5 树节点点击实现多窗口切换问题

总结

以上所述是小编给大家介绍的python 中pyqt5 树节点点击实现多窗口切换问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python多线程抓取天涯帖子内容示例
Apr 03 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
python获取代理IP的实例分享
May 07 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
4行Python代码生成图像验证码(2种)
Apr 07 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 #Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
Jul 04 #Python
Python+opencv 实现图片文字的分割的方法示例
Jul 04 #Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 #Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 #Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 #Python
pandas取出重复数据的方法
Jul 04 #Python
You might like
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
学习YUI.Ext 第七天--关于View&JSONView
2007/03/10 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
微信小程序入门教程
2016/11/18 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
四年大学自我鉴定
2014/02/17 职场文书
《四季》教学反思
2014/04/08 职场文书
党员政治学习材料
2014/05/14 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL