elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Qt listar procesos | Qt eliminar objetos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Qt listar procesos | Qt eliminar objetos  (Leído 3,345 veces)
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Qt listar procesos | Qt eliminar objetos
« en: 12 Noviembre 2014, 23:53 pm »

Hola tengo esto:

Código
  1. while (Process32Next(handle, &process)){
  2. ::process * _process = new ::process();
  3. _process->name = new QLabel(ui.processes_widged_area);
  4. _process->close = new QPushButton(ui.processes_widged_area);
  5. _process->folder = new QPushButton(ui.processes_widged_area);
  6. _process->suspend = new QPushButton(ui.processes_widged_area);
  7.  
  8. char _name[261];
  9. wcstombs(_name,process.szExeFile,260);
  10. _process->name->setText(_name);
  11. _process->close->setText("Close");
  12. _process->folder->setText("Open dir");
  13. _process->suspend->setText("Suspend");
  14.  
  15. processes.insert(processes.end(), _process);
  16.  
  17. ui.gridLayout_4->addWidget(_process->name, processes.size(), 1, 1, 1);
  18. ui.gridLayout_4->addWidget(_process->close,processes.size(),2,1,1);
  19. ui.gridLayout_4->addWidget(_process->folder, processes.size(), 3, 1, 1);
  20. ui.gridLayout_4->addWidget(_process->suspend, processes.size(), 4, 1, 1);
  21. }


processes es std::vector<process *> processes;
Es una funcion que tiene que refrescar los procesos. Para esto necesito borrar los anteriores:

Código
  1. for (int i = 0; i < processes.size(); i++){
  2. processes[i]->folder->deleteLater();
  3. processes[i]->close->deleteLater();
  4. processes[i]->name->deleteLater();
  5. processes[i]->suspend->deleteLater();
  6. }

Pero es aquí donde falla. Con el típico mensaje de infracción de acceso.

Alguien me puede ayudar ?

Saludos


« Última modificación: 15 Noviembre 2014, 02:46 am por patilanz » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Qt listar procesos
« Respuesta #1 en: 13 Noviembre 2014, 08:24 am »

qué tipo de contenedor es "processes"??

EDITO: bueno, ya puestos, la interfaz de "process" también sería interesante conocerla


« Última modificación: 13 Noviembre 2014, 08:41 am por eferion » En línea

patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Qt listar procesos
« Respuesta #2 en: 13 Noviembre 2014, 16:02 pm »

Gracias por responder. Process no me pareció interesante:

Código
  1. struct process{
  2. public:
  3. QLabel *name;
  4. QPushButton *close;
  5. QPushButton *suspend;
  6. QPushButton *folder;
  7. };

El contenedor lo puse antes:
Código
  1. std::vector<process *> processes;

@Edit: Si nadie sabe como resolver mi código, como listaríais los procesos de forma gráfica con sus 3 botones para las acciones  ? :P



El problema es como eliminar objetos de qt. Creo que voy a cambiar de titulo.
Se como ocultarlos pero quiero vaciar la memoria porque cada vez que se vuelven a refrescar los procesos se tendrán que crear botones y textos de nuevo y ocupar mas memoria y encima al crear lo hace lento y el programa se para por un segundo.

Hay otra manera? Agradezco cualquier ayuda  :-(
« Última modificación: 15 Noviembre 2014, 11:50 am por Eternal Idol » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Qt listar procesos | Qt eliminar objetos
« Respuesta #3 en: 15 Noviembre 2014, 11:51 am »

No tengo ni la menor idea de Qt pero seguro que hay otras maneras como una lista de procesos y 3 botones en total (el boton toma el proceso seleccionado en la lista) o en lugar de botones un menu contextual (el que se muestra al usar el boton derecho del mouse).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Qt listar procesos | Qt eliminar objetos
« Respuesta #4 en: 15 Noviembre 2014, 15:54 pm »

El problema no es en crear los objetos sino en eliminarlos. Cuando los creo un objeto, no importa si es botón texto u otra cosa luego para actualizar tengo que eliminarlos para crear los de nuevo y actualizar los procesos.

Como lo hace el administrador de tareas de windows que esta todo el tiempo actualizando?
« Última modificación: 16 Noviembre 2014, 11:23 am por patilanz » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Listar procesos y realizar cosas con los procesos
Programación Visual Basic
sebas369 2 3,399 Último mensaje 14 Julio 2006, 16:08 pm
por sebas369
[VB.NET] Listar procesos activos en un Listbox.
.NET (C#, VB.NET, ASP)
kub0x 2 5,120 Último mensaje 26 Agosto 2011, 04:09 am
por kub0x
Listar Procesos
Programación Visual Basic
calk9 4 2,838 Último mensaje 20 Diciembre 2011, 00:52 am
por calk9
Listar puertos en uso por procesos
Programación Visual Basic
vvictoristudio 2 2,131 Último mensaje 18 Diciembre 2013, 10:34 am
por Mad Antrax
Listar procesos y rutas en ListBox
.NET (C#, VB.NET, ASP)
dust564 3 3,259 Último mensaje 7 Junio 2015, 09:43 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines