Categorías
Otros

PYQT5 TreeWidget Icon_PYQT5 Introducción (Catorce) Control de árbol QtreeWidget

tabla de contenidos

1. Todo el mundo está en el corazón,

2. Control de árbol (QTREEWIDGET) uso básico

3. Agregue un tiempo de respuesta al nodo de árbol

IV. Aumentar, modificar y eliminar nodos de controles de árbol

Control V.qtreeView y modo personalizado del sistema

1. Todo el mundo está en el corazón,

2. Control de árbol (QTREEWIDGET) uso básico

Código:

importar sys

de PyQt5.QtWidgets import *

de PyQt5.QtCore importación *

de PyQt5.QtGui importación *

clase BasicTreeWidget(QMainWindow):

def __init__(self,parent=None):

super(BasicTreeWidget, self).__init__(parent)

Self.SetWindowTitle (Ley básica de control de árboles (QTREEWIDGET «)

self.resize(500.300)

#tree

self.tree=QTreeWidget()

# Especifique el número de columnas para los controles de árbol

self.tree.setColumnCount(2)

# Especificar etiqueta de columna

self.tree.setHeaderLabels([‘Key’,’Value’])

#

root=QTreeWidgetItem(self.tree)

Root.Settext (0, ‘nodo raíz’) # 0 representa la primera columna, es decir, la columna de clave

Root.seticon (0, QiCon (‘.. / Imagen / Bolsa / Bag1.jpg’)) # Establecer icono para el nodo

Self.Tree.SetColumnWidth (0,200) # 1 lista de ancho a 200

# Añadir subnodo 1

child1=QTreeWidgetItem(raíz)

Child1.Settext (0, ‘nodo secundario 1’) # k 1

Child1.setText (1, Datos ‘) # 2 del segundo valor de columna son los datos del nodo secundario 1

child1.setIcon(0,QIcon(‘.. /picture/bag/bag2.jpg’))

# Establezca el subnodo 1 para activar el estado de la casilla de verificación

child1.setCheckState(0,Qt.Checked)

# Añadir subnodo 2

child2=QTreeWidgetItem(raíz)

Child2.Settext (0, ‘nodo secundario 2’)

child2.setIcon(0,QIcon(‘.. /picture/bag/bag3.jpg’))

# Añadir un nodo secundario para Child2

child3=QTreeWidgetItem(child2)

Child3.Settext (0, ‘nodo secundario 2-1’)

Child3.Settext (1, ‘Nuevo valor’)

child3.setIcon(0,QIcon(‘.. /picture/bag/bag4.jpg’))

# Predeterminado Todos los nodos se expanden

self.tree.expandAll()

# Establecer el control de árbol como un control central, es decir, el control de árbol se extenderá automáticamente toda la pantalla.

self.setCentralWidget(self.tree)

si __name__==’__main__’:

app=QApplication(sys.argv)

main=BasicTreeWidget()

main.show()

sys.exit(app.exec_())

resultado de la operación:

3. Agregue un tiempo de respuesta al nodo de árbol

  PAT Una suma máxima de subsecuencia de grado 1007

Código:

importar sys

de PyQt5.QtWidgets import *

de PyQt5.QtCore importación *

de PyQt5.QtGui importación *

clase TreeEvent(QMainWindow):

def __init__(self,parent=None):

super(TreeEvent, self).__init__(parent)

propio. SETWINDOWTILE (‘Añadir eventos de respuesta para árbol)

self.resize(400.300)

#tree

self.tree=QTreeWidget()

# Especifique el número de columnas para los controles de árbol

self.tree.setColumnCount(2)

# Especificar etiqueta de columna

self.tree.setHeaderLabels([‘Key’,’Value’])

#

root=QTreeWidgetItem(self.tree)

Root.Settext (0, ‘root’) # 0 representa la primera columna, la columna de clave, el valor es root

root.setText(1,’0′)

# NIÑO1

child1=QTreeWidgetItem(raíz)

child1.setText(0,’child1′)

child1.setText(1,’1′)

# CHild2

child2=QTreeWidgetItem(raíz)

child2.setText(0,’child2′)

child2.setText(1,’2′)

# Añadir un nodo secundario para Child2 Child3

child3=QTreeWidgetItem(child2)

child3.setText(0,’child3′)

child3.setText(1,’3′)

# Señal y ranuras

self.tree.clicked.connect(self.onTreeClicked)

# Establecer el control de árbol como un control central, es decir, el control de árbol se extenderá automáticamente toda la pantalla.

self.setCentralWidget(self.tree)

DEF ONTREECLICKED (Self, INDEX): #index es el índice del nodo con clic

Item = Self.tree.currentItem () # Obtener los clics actuales

Imprimir (‘está actualmente en la primera línea D «# salida de la línea actual (el primer valor de su propio nodo primario)

print(‘key=%s,value=%s’%(item.text(0),item.text(1)))

print()

si __name__==’__main__’:

app=QApplication(sys.argv)

main=TreeEvent()

main.show()

sys.exit(app.exec_())

resultado de la operación:

1c88dd5cd977394eb7b09a43970d40e6.png

4184d5632a7c9f2f628087b96b68d854.png EG: Child1 es el primer nodo de raíz, el número de filas es 0; Child2 es el segundo nodo de raíz, el número de filas es 1; Child3 es el primer nodo de Child2, el número de filas es 0

IV. Aumentar, modificar y eliminar nodos de controles de árbol

Código:

importar sys

de PyQt5.QtWidgets import *

de PyQt5.QtCore importación *

de PyQt5.QtGui importación *

clase ModifyTree(QWidget):

def __init__(self,parent=None):

super(ModifyTree, self).__init__(parent)

propio. SETWINDOWTITLE (‘Añade el nodo «en el control de árbol)

self.resize(400.300)

OperatorLayout = QHBOXLAYOUT () # diseño horizontal

AddBTN = QPushbutton (‘Añadir nodo’)

Updatebtn = qpushbutton (‘Modificar nodo’)

deletebtn = qpushbutton (‘Eliminar nodo’)

  Resumen de instrucciones SQL complejas en la base de datos

operatorLayout.addWidget(addBtn)

operatorLayout.addWidget(updateBtn)

operatorLayout.addWidget(deleteBtn)

addBtn.clicked.connect(self.addNode)

updateBtn.clicked.connect(self.updateNode)

deleteBtn.clicked.connect(self.deleteNode)

#

self.tree = QTreeWidget()

# Especifique el número de columnas para los controles de árbol

self.tree.setColumnCount(2)

# Especificar etiqueta de columna

self.tree.setHeaderLabels([‘Key’, ‘Value’])

#

raíz = QTreeWidgetItem(self.tree)

Root.Settext (0, ‘root’) # 0 representa la primera columna, la columna de clave, el valor es root

root.setText(1, ‘0’)

# NIÑO1

child1 = QTreeWidgetItem(root)

child1.setText(0, ‘child1’)

child1.setText(1, ‘1’)

# CHild2

child2 = QTreeWidgetItem(root)

child2.setText(0, ‘child2’)

child2.setText(1, ‘2’)

# Añadir un nodo secundario para Child2 Child3

child3 = QTreeWidgetItem(child2)

child3.setText(0, ‘child3’)

child3.setText(1, ‘3’)

# Señal y ranuras

self.tree.clicked.connect(self.onTreeClicked)

mainLayout=QVBoxLayout(self)

mainLayout.addLayout(operatorLayout)

mainLayout.addWidget(self.tree)

self.setLayout(mainLayout)

DEF ONTREECLICKED (Self, INDEX): # index es el índice del nodo en el que se ha hace clic

Item = Self.tree.currentItem () # Obtener los clics actuales

Imprimir (‘está actualmente en la primera línea D «# salida de la línea actual (el primer valor de su propio nodo primario)

print(‘key=%s,value=%s’ % (item.text(0), item.text(1)))

print()

def addNode(self):

Imprimir (‘Añadir nodo’)

elemento = self.tree.currentItem () # Obtener el nodo actual

Imprimir (‘el nodo actual es:’, artículo)

node=QTreeWidgetItem(item)

Node.Settext (0, ‘nuevo nodo’)

Node.Settext (1, ‘Nuevo valor’)

def updateNode(self):

Imprimir (‘Modificar nodo’)

item=self.tree.currentItem()

Item.Settext (0, ‘Modificar nodo’)

item.settext (1, ‘»se ha modificado’)

def deleteNode(self):

Imprimir (‘Eliminar nodo’)

# Evitar que los elementos sean root, ROOT está equivocado, y usar la siguiente manera

Rootfather = self.tree.invisibleRootItItem () # Raíz invisible del nodo primario de Nougang

para el elemento en self.tree.selectedItems():

#Flial nodo no está vacío

(item.parent() o rootFather).removeChild(item)

si __name__==’__main__’:

app=QApplication(sys.argv)

main=ModifyTree()

main.show()

sys.exit(app.exec_())

resultado de la operación:

f4d401dc8877b119695740ac8c18ba86.png

d5b8a07fcfab573b4d42ece71ccac4bd.png

Control V.qtreeView y modo personalizado del sistema

Controles de árbol generalmente complejos con QTreeView para escribir

Código:

importar sys

de PyQt5.QtWidgets import *

de PyQt5.QtCore importación *

de PyQt5.QtGui importación *

si __name__==’__main__’:

app=QApplication(sys.argv)

# Modelo de visualización de la estructura de directorios

  Docker Instala Jenkins y configura CI

modelo=QDirModel()

tree=QTreeView()

tree.setModel(model)

tree.setWindowTitle(‘QTreeView’)

tree.resize(600.400)

tree.show()

sys.exit(app.exec_())

resultado de la operación:

bff4a50c99106a6c5059a1a9e2b2f53c.png

.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *