|
View:
New views
11 Messages
—
Rating Filter:
Alert me
|
|
|
A QTreeView desde QListViewBuenas,
Ando liado con la migración de QT3 a QT4 de KLog... Que no estoy perdiendo tiempo ni na... :-( El caso es que me han quitado QListView para el uso que yo le daba y ahora creo que esa funcionalidad se da con QTreeView. Mu pregunta... ¿Como se puede hacer para seleccionar un ítem con el botón derecho como se hacia en QListView y la señal rightbuttonclicked? Estoy mirando y no veo nada... Muchas gracias... Jaime _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListViewPara ontrolar la seleccion, tienes que usar el QSelectionModel que te devuelve QAbstractItemModel::selectionModel().
si lo que quieres es interceptar el mouse, puedes usar QWidget::mouseReleaseEvent Saludos! Aleix 2009/8/27 Jaime Robles <jaime@...> Buenas, _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListViewHola,
Jaime, como te apuntó Aleix, el sistema view/model de Qt4 es muy flexible. Pero si lo único que quieres es migrar la funcionalidad de QListView de Qt3 a Qt4 sin tener que retocar mucho código, yo no usaría un QTreeView, sino un QTreeWidget. De este modo, dispones de las típicas señales itemClicked, itemDoubleClicked, etc. que trabajan con QTreeWidgetItem. Como estas señales no distinguen entre los distintos botones, para saber cuál se ha pulsado debes usar QApplication::mouseButtons() en el slot que responda a las anteriores señales. Un saludo, Eloy Cuadra El domingo, 30 de agosto de 2009, Aleix Pol escribió: > Para ontrolar la seleccion, tienes que usar el QSelectionModel que te > devuelve QAbstractItemModel::selectionModel(). > > si lo que quieres es interceptar el mouse, puedes usar > QWidget::mouseReleaseEvent > > Saludos! > Aleix > > 2009/8/27 Jaime Robles <jaime@...> > > > Buenas, > > Ando liado con la migración de QT3 a QT4 de KLog... Que no estoy > > perdiendo tiempo ni na... :-( > > > > El caso es que me han quitado QListView para el uso que yo le daba y > > ahora creo que esa funcionalidad se da con QTreeView. > > > > Mu pregunta... ¿Como se puede hacer para seleccionar un ítem con el > > botón derecho como se hacia en QListView y la señal > > rightbuttonclicked? > > > > Estoy mirando y no veo nada... > > > > Muchas gracias... > > > > Jaime > > _______________________________________________ > > Kde-devel-es mailing list > > Kde-devel-es@... > > https://mail.kde.org/mailman/listinfo/kde-devel-es > Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListViewHola,
El martes, 1 de septiembre de 2009, Eloy Cuadra escribió: > Como estas señales no distinguen entre los distintos botones, para saber > cuál se ha pulsado debes usar QApplication::mouseButtons() en el slot que > responda a las anteriores señales. Bueno, esto no es correcto, ya que QApplication::mouseButtons() siempre te devolverá 0 si lo usas en los slots conectados a las señales itemClicked e itemDoubleClicked. Para solucionar este pequeño problema debes conectar además la señal itemPressed a otro slot donde captures el estado de los botones del ratón con QApplication::mouseButtons() y mantengas en caché el QTreeWidgetItem y la columna. Posteriormente, en el slot donde respondas a itemClicked, comprueba que el QTreeWidgetItem y la columna se corresponden con los valores que mantenías en caché antes de usar el estado capturado de los botones del ratón. También se pueden capturar y usar del mismo modo los modificadores del teclado. Esto funciona correctamente (lo uso en una aplicación). Aún así, sigo teniendo problemas para distinguir entre itemClicked e itemDoubleClicked, ya que todo doble clic implica un clic. ¿Alguna sugerencia? Un saludo, -- Eloy Cuadra _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
|
|
|
Re: A QTreeView desde QListViewOn Martes, 1 de Septiembre de 2009 16:24:30 Jaime Robles escribió:
> Buenas, > > Me equivoqué, lo que estoy tratando de usar es el QTreeWidget, no el > QTreeView O:-) aun así mis problemas son los mismos. > > > Jaime, como te apuntó Aleix, el sistema view/model de Qt4 es muy > > flexible. Pero si lo único que quieres es migrar la funcionalidad de > > QListView de Qt3 a Qt4 sin tener que retocar mucho código, yo no usaría > > un QTreeView, sino un QTreeWidget. > > Si... creo que ese es el bueno pero... ¿por qué dices que "si lo único que > quiero es migrar la funcionalidad"? ¿Es mejor el QTreeView que el > QTreeWidget? > > > De este modo, dispones de las típicas señales itemClicked, > > itemDoubleClicked, > > etc. que trabajan con QTreeWidgetItem. > > Tendré que mirarme todo esto... > > > Como estas señales no distinguen entre los distintos botones, para saber > > cuál > > se ha pulsado debes usar QApplication::mouseButtons() en el slot que > > responda a las anteriores señales. > > Uff! > Con lo FACIL que era antes... ahora a leer, leer, leer, ... X'DDD ¿Has visto este hilo? En el cuarto mensaje dan una solucion: la señal customContextMenuRequested http://doc.trolltech.com/4.5/qwidget.html#customContextMenuRequested > > > A los que sabeis... ¿Merece la pena la migración de Qt4? > Tengo que migrar si quiero seguir manteniendo KLog pero... ¿Voy a ganar > algo? No se yo... > > > Gracias (y a Aleix también, que estaba esperando a tener un momento para > leer con detalle el mensaje y dar las gracias!) > > > _______________________________________________ > Kde-devel-es mailing list > Kde-devel-es@... > https://mail.kde.org/mailman/listinfo/kde-devel-es Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListViewHola,
El martes, 1 de septiembre de 2009, Jaime Robles escribió: > Si... creo que ese es el bueno pero... ¿por qué dices que "si lo único que > quiero es migrar la funcionalidad"? ¿Es mejor el QTreeView que el > QTreeWidget? No es que una sea mejor que otra: son dos aproximaciones distintas. En Qt4 se prefiere el sistema model/view para representar datos en widgets. Esta es una de las grandes diferencias con Qt3. En Qt4, QTreeView no permite trabajar con elementos QTreeWidgetItem (como permitían las clases de Qt3). En lugar de ello, ahora trabaja con elementos QModelIndex. QTreeWidget hereda de QTreeView, pero permite trabajar con elementos QTreeWidgetItem en lugar de con elementos QModelIndex. Por eso decía que si querías migrar lo que ya tenías hecho para Qt3 sin romperte demasiado la cabeza... pues eso :-) > A los que sabeis... ¿Merece la pena la migración de Qt4? > Tengo que migrar si quiero seguir manteniendo KLog pero... ¿Voy a ganar > algo? No se yo... Bueno, no es que sepa demasiado sobre esto, pero si no migras la aplicación a Qt4 vas a seguir necesitando las bibliotecas de Qt3/KDE3, que pronto van a quedar obsoletas (si es que no lo están ya). Un saludo, -- Eloy Cuadra _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListView
2009/9/1 Jaime Robles <jaime@...> Buenas, En teoría, QTreeView escala mejor, porque separas los datos (el modelo) de la vista. En la practica supongo que QTreeView sólo es mejor si tienes pensado aprender a usar los modelos. En cualquier caso, QTreeView+QStandardModel te dan algo bastante parecido a QTreeWidget. Es lo que yo uso en estos casos.
Para sacar un menu contextual, usa la señal customContextMenuRequested, asi Qt se encarga de sacarlo cuando sea necesario (notese que no tiene porque ser el boton derecho el correcto, dependiendo de las preferencias del usuario). Si usas esto, recuerda modificar el contextMenuPolicy.
No deberías necesitar usar QApplication::mouseButtons para nada.
Sí. Tienes que passarte a Qt4.
:)
_______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListViewBuenas,
Siguiendo el consejo de Aleix... Estoy tratando de detectar si he pulsado el ratón con el botón derecho para sacar el típico menú contextual, he usado el mouseReleaseEvent, como aparece en la documentación (estoy usando un ejemplo de la documentación de Qt "Scribble") pero... Consigo detectar si uso ratón derecho o izquierdo sólo cuando pulso sobre zonas "genéricas" del widget principal, no cuando pulso sobre un qtreewidget... ¿Cómo puedo definir el mouseReleaseEvent de un qtreewidget que defino en el fichero ".ui" y luego uso desde el .cpp? Por si alguien tiene curuiosidad de cómo anda klog (ya por fin he conseguido migrarlo casi del todo) teneis el SVN aquí: http://svn.berlios.de/wsvn/klog/trunk/src/#_trunk_src_ Gracias. > Para controlar la seleccion, tienes que usar el QSelectionModel que te > devuelve QAbstractItemModel::selectionModel(). > > si lo que quieres es interceptar el mouse, puedes usar > QWidget::mouseReleaseEvent > > Saludos! > Aleix > > 2009/8/27 Jaime Robles <jaime@...> > >> Buenas, >> Ando liado con la migración de QT3 a QT4 de KLog... Que no estoy >> perdiendo tiempo ni na... :-( >> >> El caso es que me han quitado QListView para el uso que yo le daba y >> ahora creo que esa funcionalidad se da con QTreeView. >> >> Mu pregunta... ¿Como se puede hacer para seleccionar un ítem con el >> botón derecho como se hacia en QListView y la señal >> rightbuttonclicked? >> >> Estoy mirando y no veo nada... >> >> Muchas gracias... >> >> Jaime >> _______________________________________________ >> Kde-devel-es mailing list >> Kde-devel-es@... >> https://mail.kde.org/mailman/listinfo/kde-devel-es >> > _______________________________________________ > Kde-devel-es mailing list > Kde-devel-es@... > https://mail.kde.org/mailman/listinfo/kde-devel-es > -- Un saludo, Jaime Robles, EA4TV jaime@... Visita: http://jaime.robles.es _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListViewHola,
El jueves, 8 de octubre de 2009, Jaime Robles escribió: > Estoy tratando de detectar si he pulsado el ratón con el botón derecho > para sacar el típico menú contextual, he usado el mouseReleaseEvent, como > aparece en la documentación (estoy usando un ejemplo de la documentación > de Qt "Scribble") pero... > > Consigo detectar si uso ratón derecho o izquierdo sólo cuando pulso sobre > zonas "genéricas" del widget principal, no cuando pulso sobre un > qtreewidget... > ¿Cómo puedo definir el mouseReleaseEvent de un qtreewidget que defino en > el fichero ".ui" y luego uso desde el .cpp? Yo me olvidaría de mouseReleaseEvent para eso y me ocuparía de conectar la señal customContextMenuRequested del QTreeWidget con una función tuya que muestre el menú de contexto: connect( qtreewidget, SIGNAL( customContextMenuRequested( const QPoint& ) ), this, SLOT( itemContextMenu( const QPoint& ) ) ); Y luego usa algo como: void MyAppWindowView::itemContextMenu( const QPoint& pos ) { QMenu menu(this); menu.setTitle("context"); // añade las acciones pertinentes aquí menu.exec(QCursor::pos()); } Un saludo, -- Eloy Cuadra _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
|
|
Re: A QTreeView desde QListViewBueno... puedes hacer que el widget no responda al evento. Para eso, puedes hacer algo tipo:
void MyTree::someEvent(QEvent* e) { e->ignore(); } Ahora bien, esto es liarse bastante y me hace pensar que estas usando el menu contextual como si fuera un menu normal. Fijate que se llama contextual porque depende del contexto, si el contexto es toda la aplicacion, ya no depende, entonces va al menú principal... no? Saludos! 2009/10/8 Jaime Robles <jaime@...> Buenas, _______________________________________________ Kde-devel-es mailing list Kde-devel-es@... https://mail.kde.org/mailman/listinfo/kde-devel-es |
| Free embeddable forum powered by Nabble | Forum Help |