QtreeWidget

111

    def OpenHistoryDialog(self):
        self.IpHistory = QtWidgets.QDialog(self)
        self.IpHistory.setWindowTitle("打开")
        self.IpHistory.setWindowFlag(QtCore.Qt.WindowContextHelpButtonHint, False)  #去掉问号
        self.IpHistory.setModal(True)        #设置模态
        VBoxLayout = QtWidgets.QVBoxLayout(self.IpHistory)
        VBoxLayout.setContentsMargins(0, 0, 0, 0)
        
        
        
        self.treeWidget_IpHistory = QtWidgets.QTreeWidget(self.IpHistory)
        #设置shift多选    https://doc.qt.io/qtforpython/PySide2/QtWidgets/QAbstractItemView.html
        self.treeWidget_IpHistory.setSelectionMode(QtWidgets.QAbstractItemView.ContiguousSelection)
        #设置列数
        self.treeWidget_IpHistory.setColumnCount(1)
        #设置树形控件头部的标题  ['Key','Value']
        self.treeWidget_IpHistory.setHeaderLabels(['Name'])
        self.treeWidget_IpHistory.header().hide()
        
        root = QtWidgets.QTreeWidgetItem(self.treeWidget_IpHistory,["IP"] )
        QtWidgets.QTreeWidgetItem(root, ['192.100.100.12',"192.100.100.12"])
        QtWidgets.QTreeWidgetItem(root, ['192.100.100.13',"192.100.100.14"])
        QtWidgets.QTreeWidgetItem(root, ['192.100.100.14',"192.100.100.15"])
        
        #确认连接按钮
        frame_IpConnect = QtWidgets.QFrame(self.IpHistory)
        frame_IpConnect.setContentsMargins(0, 0, 0, 0)
        pushButton_IpConnect = QtWidgets.QPushButton(frame_IpConnect)
        pushButton_IpConnect.setText("连接")
        pushButton_IpConnect.setFixedSize(50, 20)
        gridLayout = QtWidgets.QGridLayout(frame_IpConnect)
        gridLayout.setContentsMargins(0, 0, 0, 0)
        gridLayout.addWidget(pushButton_IpConnect)
        pushButton_IpConnect.clicked.connect(self.OpenHistoryIP)
        
        
        #给节点添加响应事件
        #双击事件
        self.treeWidget_IpHistory.itemDoubleClicked.connect(self.OpenOneIP)
        #右键菜单 要先注册   https://blog.csdn.net/xiexingshishu/article/details/44357753
        self.treeWidget_IpHistory.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.treeWidget_IpHistory.customContextMenuRequested.connect(self.treeWidget_IpHistory_popMenu)
        
        self.treeWidget_IpHistory.currentItemChanged.connect(self.treeWidget_IpHistory_ItemChanged)
#        self.treeWidget_IpHistory.mousePressEvent.connect(self.RightClicked)
#        self.treeWidget_IpHistory.itemPressed.connect(self.RightClicked)
        #节点全部展开
        self.treeWidget_IpHistory.expandAll()
        
        VBoxLayout.addWidget(self.treeWidget_IpHistory)
        VBoxLayout.addWidget(frame_IpConnect)
        self.IpHistory.show()
    
    def treeWidget_IpHistory_ItemChanged(self, current, previous):
        if None != current.parent():
            current.setBackground(0, QtGui.QColor(0, 0, 255, 125) )
        if None != previous:
            previous.setBackground(0, QtGui.QColor(255, 255, 255, 125) )
    
    def treeWidget_IpHistory_popMenu(self, pos):
        curItem=self.treeWidget_IpHistory.currentItem()
        curItem.setBackground(0, QtGui.QColor(0, 0, 255) )
        print(curItem)

 

posted @ 2019-10-01 12:09  夏日已末  阅读(456)  评论(0)    收藏  举报