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求斐波那契数列示例分享
Feb 14 Python
python处理json数据中的中文
Mar 06 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
Python常见异常分类与处理方法
Jun 04 Python
Pycharm导入Python包,模块的图文教程
Jun 13 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
python之信息加密题目详解
Jun 26 Python
django 信号调度机制详解
Jul 19 Python
python 正则表达式参数替换实例详解
Jan 17 Python
python时间日期操作方法实例小结
Feb 06 Python
python用Configobj模块读取配置文件
Sep 26 Python
Python通过format函数格式化显示值
Oct 17 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
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php单一接口的实现方法
2015/06/20 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
js 调整select 位置的函数
2008/02/21 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
jquery multiSelect 多选下拉框
2010/07/09 Javascript
js的一些常用方法小结
2011/06/29 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
JavaScript实现图片懒加载(Lazyload)
2016/11/28 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
Python中操作符重载用法分析
2016/04/29 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
python requests证书问题解决
2019/09/05 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
军校大学生个人的自我评价
2014/02/17 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL