http://www.lawebdelprogramador.com/foros/QT/1299550-Poner_valores_maximo_y_minimo_en_un_spinbox_dentro_de_un_QtableWidget.html
Mensajes realizados anteriormente (No estaban la última vez que entraste)Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Francisco (02/12/2011 15:43:57)
1.655 visitas
7 respuestas
Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
juan (02/12/2011 19:56:58)
Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Francisco (02/12/2011 22:11:54)
Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
juan (02/12/2011 22:17:13)
Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Francisco (03/12/2011 02:54:06)
Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
juan (03/12/2011 17:56:54)
Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Francisco (03/12/2011 19:39:12)
Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
juan (07/12/2011 10:38:59)
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:Francisco (4 intervenciones)
Fecha:02/12/2011 15:43:57
Desarrollo un aplicacion, y estoy empezando con qt. Tengo una tablewidget y en ella una columna con valores enteros. Cuando edito una celda aparece un spinbox, lo que ahora intento es ponerle un valor maximo y minimo a introducir.

setMinimum ( int min )

Pero al no haber creado yo ese widget no se como cambiarle ese valor.

Gracias. saludos.
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:juan (9 intervenciones)
Fecha:02/12/2011 19:56:58
Hola

Échale un vistazo a este ejemplo (también está en la documentación que acompaña a QT Creator, por si te es más fácil de consultar):

http://doc.qt.nokia.com/4.7/itemviews-spinboxdelegate.html

Saludos
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:Francisco (4 intervenciones)
Fecha:02/12/2011 22:11:54
Si, le he echado un vistazo, pero en ese ejemplo se crea un delegado, no sé si he de hacerlo yo también o se puede modificar el que ya existe. En fin, no sé como adaptar ese ejemplo a mi programa.

Saludos.
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:juan (9 intervenciones)
Fecha:02/12/2011 22:17:13
Claro, crea tu propio delegado. En el ejemplo fíjate que pone un valor mínimo y máximo:

QWidget *SpinBoxDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &/* option */,
const QModelIndex &/* index */) const
{
QSpinBox *editor = new QSpinBox(parent);
editor->setMinimum(0); // mínimo
editor->setMaximum(100); // y máximo, lo que buscas

return editor;
}

Prácticamente te vale con copiar el ejemplo.

Saludos
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:Francisco (4 intervenciones)
Fecha:03/12/2011 02:54:06
Si eso lo entendí bien. He intentado añadir el delegado con mis propios valores. He copiado del ejemplo y añadido al proyecto delegate.h, delegate.cpp. La parte que es distinta es que tablewidget está dentro de un MainWindow y ahí es donde inserto el delegado de esta manera:

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->tableWidget->horizontalHeader(),SIGNAL(sectionDoubleClicked(int)),ui->tableWidget,SLOT(sortByColumn(int))); SpinBoxDelegate delegate; ui->tableWidget->setItemDelegateForColumn(1,&delegate); }

El programa se ejecuta sin errores, pero el spinbox de la casilla selecionada no respeta los valores maximos y minimos.

Saludos y gracias por tu interés.
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:juan (9 intervenciones)
Fecha:03/12/2011 17:56:54
Hola

Decláralo como un puntero:

SpinBoxDelegate *delegate = new SpinBoxDelegate;
ui->tableWidget->setItemDelegateForColumn(1, delegate);

He hecho un pequeño ejemplo para comprobar y me ha funcionado, al principio lo hice como pusiste y me ocurría igual, no tomaba lo márgenes.

Desconozco porqué no toma el delegado si no se declara como un puntero.

Saludos
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:Francisco (4 intervenciones)
Fecha:03/12/2011 19:39:12
Si, justo lo iba a postear y te has adelantado, hay que instanciarlo:

ui->tableWidget->setItemDelegateForColumn(1,new SpinBoxDelegate);

El caso es que en el ejemplo funciona, pero en mi aplicación no lo hacía. Quizás sea por ir dentro de main(), no sé todavía estoy verde en esto.

Gracias por tu ayuda. Saludos.
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:Poner valores maximo y minimo en un spinbox dentro de un QtableWidget
Autor:juan (9 intervenciones)
Fecha:07/12/2011 10:38:59
Hola de nuevo

Perdón por la tardanza, pero estuve un poco "desconectado" estos días.

Paso a comentarte el porqué no funciona si se hace como en el ejemplo.

En tu caso estás creando el objeto delegate dentro del constructor, y al terminar este, pues se destruye automáticamente, con lo que el tableWidget usa el delegado por defecto.

En el ejemplo de Qt se crea en la función main y esta no termina hasta que termina el programa, por lo que el objeto no se destruye.

Por eso hay que usar un puntero, así el objeto no desaparece hasta que no se borra con delete. Espero haberte ayudado, no sé si me expresé bien.

Por cierto, ¿Cuáles son las etiquetas para realzar el código?

Saludos