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内置函数Type()函数一个有趣的用法
Feb 18 Python
Python构造函数及解构函数介绍
Feb 26 Python
python实现12306火车票查询器
Apr 20 Python
Python实现读取json文件到excel表
Nov 18 Python
Python处理命令行参数模块optpars用法实例分析
May 31 Python
python逆序打印各位数字的方法
Jun 25 Python
python字典的常用方法总结
Jul 31 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
Aug 09 Python
详解python变量与数据类型
Aug 25 Python
python爬虫请求头的使用
Dec 01 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
Sep 25 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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
PHP脚本数据库功能详解(下)
2006/10/09 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
python 批量修改/替换数据的实例
2018/07/25 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
python编写计算器功能
2019/10/25 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
Django URL参数Template反向解析
2020/11/24 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
工艺员岗位职责
2014/02/11 职场文书
运动会加油稿50字
2015/07/21 职场文书
Python学习之包与模块详解
2022/03/19 Python