小渣渣学习笔记 python day48【PyQt5 树控件 】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了小渣渣学习笔记 python day48【PyQt5 树控件 】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4329字,纯文字阅读大概需要7分钟。
内容图文
![小渣渣学习笔记 python day48【PyQt5 树控件 】](/upload/InfoBanner/zyjiaocheng/626/07112c4562bb45f69cfcc808613c8164.jpg)
#表格中显示 上下文菜单ContextMenu
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class QTableWidgetMenuDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('表格中上下文菜单演示')
self.resize(500,400)
self.initUI()
def initUI(self):
layout = QVBoxLayout(self)
self.tableWidget = QTableWidget()
self.tableWidget.setRowCount(4)
self.tableWidget.setColumnCount(3)
self.tableWidget.setHorizontalHeaderLabels(['name','sex','age'])
layout.addWidget(self.tableWidget)
item = QTableWidgetItem('tom')
self.tableWidget.setItem(0,0,item)
item = QTableWidgetItem('男')
self.tableWidget.setItem(0, 1, item)
item = QTableWidgetItem('25')
self.tableWidget.setItem(0, 2, item)
self.tableWidget.setContextMenuPolicy(Qt.CustomContextMenu)
self.tableWidget.customContextMenuRequested.connect(self.generateMenu)
def generateMenu(self,pos): #单击 参数是鼠标点击的位置
print(pos)
screenPos = self.tableWidget.mapToGlobal(pos)
for i in self.tableWidget.selectionModel().selection().indexes():
rowNo = i.row()
if rowNo <2:
menu = QMenu()
item1 = menu.addAction('menu1')
item2 = menu.addAction('menu2')
item3 = menu.addAction('menu3')
action = menu.exec(screenPos)
if action == item1:
print('选择了第一个按钮',self.tableWidget.item(rowNo,0).text(),
self.tableWidget.item(rowNo,1).text(),
self.tableWidget.item(rowNo,2).text())
elif action == item2:
print('选择了第一个按钮',self.tableWidget.item(rowNo,0).text(),
self.tableWidget.item(rowNo,1).text(),
self.tableWidget.item(rowNo,2).text())
elif action == item3:
print('选择了第一个按钮',self.tableWidget.item(rowNo,0).text(),
self.tableWidget.item(rowNo,1).text(),
self.tableWidget.item(rowNo,2).text())
else:return
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QTableWidgetMenuDemo()
main.show()
sys.exit(app.exec_())
# 树控件 QTreeWidget
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class QTableWidgetMenuDemo(QMainWindow): # 这里用QMainWindow
def __init__(self, parent=None):
super(QTableWidgetMenuDemo, self).__init__(parent)
self.setWindowTitle('表格中上下文菜单演示')
self.resize(500, 400)
layout = QVBoxLayout(self)
self.treeWidget = QTreeWidget() #实例化控件
self.setCentralWidget(self.treeWidget) #设置为主窗口
self.treeWidget.setColumnCount(2) #设置2列
root = QTreeWidgetItem(self.treeWidget) #设置根节点
root.setText(0,'根节点')
root.setIcon(0,QIcon('./back.png')) #加图片
self.treeWidget.setColumnWidth(0,220) #设置宽度
child1 = QTreeWidgetItem(root) #设置子节点1
child1.setText(0,'子节点1')
child1.setText(1,'子节点1的数据')
child1.setIcon(0,QIcon('./download.png'))
child1.setCheckState(0,Qt.Checked)
child2 = QTreeWidgetItem(root) #设置子节点2
child2.setText(0, '子节点2')
child2.setText(1, '子节点2的数据')
child2.setIcon(0, QIcon('./rainbow.png'))
child2.setCheckState(0, Qt.Checked)
child3 = QTreeWidgetItem(child2) #为子节点2添加子节点
child3.setText(0, '子节点3')
child3.setText(1, '子节点3的数据')
child3.setIcon(0, QIcon('./rainbow.png'))
child3.setCheckState(0, Qt.Checked)
self.treeWidget.expandAll()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QTableWidgetMenuDemo()
main.show()
sys.exit(app.exec_())
# 为树节点添加响应事件
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class QTableWidgetMenuDemo(QMainWindow): # 这里用QMainWindow
def __init__(self, parent=None):
super(QTableWidgetMenuDemo, self).__init__(parent)
self.setWindowTitle('表格中上下文菜单演示')
self.resize(500, 400)
layout = QVBoxLayout(self)
self.treeWidget = QTreeWidget() #实例化控件
self.treeWidget.setHeaderLabels(['节点','描述'])
self.setCentralWidget(self.treeWidget) #设置为主窗口
self.treeWidget.setColumnCount(2) #设置2列
root = QTreeWidgetItem(self.treeWidget) #设置根节点
root.setText(0,'根节点')
root.setIcon(0,QIcon('./back.png')) #加图片
self.treeWidget.setColumnWidth(0,220) #设置宽度
child1 = QTreeWidgetItem(root) #设置子节点1
child1.setText(0,'子节点1')
child1.setText(1,'子节点1的数据')
child1.setIcon(0,QIcon('./download.png'))
child1.setCheckState(0,Qt.Checked)
self.treeWidget.clicked.connect(self.onTreeClicked)
self.treeWidget.expandAll()
def onTreeClicked(self,index):
item = self.treeWidget.currentItem()
print(index.row())
print('key=%s,value=%s' %(item.text(0),item.text(1)))
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QTableWidgetMenuDemo()
main.show()
sys.exit(app.exec_())
内容总结
以上是互联网集市为您收集整理的小渣渣学习笔记 python day48【PyQt5 树控件 】全部内容,希望文章能够帮你解决小渣渣学习笔记 python day48【PyQt5 树控件 】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。