Skip to content

Spanish

A forum for those speaking Spanish
505 Topics 1.8k Posts
  • Problema comparando un QList con un QString

    Solved
    4
    0 Votes
    4 Posts
    2k Views
    E

    @meepo1 Usa at() en lugar de compare() o []

  • Cómo Leer/Escribir de una hoja de Excel?

    Solved
    2
    0 Votes
    2 Posts
    1k Views
    E

    Ya tengo la solucion

    QAxObject* excel = new QAxObject("Excel.Application"); QAxObject* workbooks = excel->querySubObject("Workbooks"); QAxObject* workbook = workbooks->querySubObject("Open(const QString&)","c:\\temp\\i1.xlsx"); QAxObject* sheets = workbook->querySubObject("Worksheets"); QAxObject* sheet = sheets->querySubObject("Item(int)", 1); excel->dynamicCall("ScreenUpdating()", false); i = 0; for (int f = 2; f <= 740; ++f){ p = 0; for(int c = 2; c <= 11; ++c){ auto cCell = sheet->querySubObject("Cells(int,int)",f,c); if(cCell->dynamicCall("Value()").value<int>() == NULL){ if(c == 2){ a = cCell->dynamicCall("Value()").toString(); p = p + 1; }else if(c == 4){ d = cCell->dynamicCall("Value()").toString(); p = p + 1; } } }
  • Leer un trozo de QString??

    Unsolved
    3
    0 Votes
    3 Posts
    1k Views
    E

    @Xedig Hay una variedad de metodos:
    1.- Si quieres sacar las ultimas 2, 3 o X letras de un QString, utiliza QString::Chop(). Por ejemplo: Si de la palabra "Hola" Quiero leer "Hol" usas "Hola".chop(1)
    2.- Si quieres sacar una cantidad de letras indefinidas de cualquier parte de la palabra, puedes usar remove(). Por ejemplo: Si de la palabra "Hola" quiero leer "Ha" (osea he extraido las 2 de en medio de Hola) escribes "Hola".remove(1,2) Como dice Juanki todo esta en la documentacion pero si no sabes una pisca de Ingles, estamos en problemas

  • Eliminar QPushButtons?

    Solved
    2
    0 Votes
    2 Posts
    718 Views
    juankiJ

    Hola

    Pues depende, si, por ejemplo lo añadiste a un layout, puede eliminarlo también:
    http://doc.qt.io/qt-5/qlayout.html#removeWidget

    También puedes esconderlo, si vas a usarlo posteriormente, así te evitas estar creándolo y destruyéndolo:
    http://doc.qt.io/qt-5/qwidget.html#hide

    Un saludo

  • QT con PiCamera

    Unsolved
    1
    0 Votes
    1 Posts
    450 Views
    No one has replied
  • tamaño de ventana en QML

    Moved Unsolved
    3
    0 Votes
    3 Posts
    1k Views
    F

    Declara el máximo de ancho y alto con las propiedades maximumHeight y maximumWidth .

  • 0 Votes
    3 Posts
    1k Views
    E

    QPushButton {
    color: white;
    background-color: QLinearGradient(spread:pad x1: 0, y1: 0, x2: 0, y2: 1, stop: 0.0 rgba(156,152,215,100), stop: 0.4 rgba(58,52,151,100), stop: 1.0 rgba(78,70,190,100));
    border-width: 1px;
    border-color: #339;
    border-style: solid;
    border-radius: 7;
    padding: 3px;
    padding-left: 5px;
    padding-right: 5px;
    font:bold;
    font-family:Vrinda;
    }
    Aqui tengo un Candy Button por si a alguien le interesa, es lo mas cercano que he podido hacer a un Mac Button sin tener que esforzarme mucho.

  • Como ajustar texto como lo hace Excel?

    Solved
    2
    0 Votes
    2 Posts
    759 Views
    VRoninV

    https://stackoverflow.com/a/42689966

  • [Dudas] Qt 5.9 LTS y Qbs

    Unsolved
    2
    0 Votes
    2 Posts
    827 Views
    Carlos DiazC

    Algo que recién aprendí:

    cpp.dynamicLibraries: "pthread" cpp.cLanguageVersion: "c11"

    Con la primer linea se agrega la librería pthread, con la segunda la aplicación se compila con el estandard c11. Ambos van dentro de la sección de la aplicación.

    import qbs Project { minimumQbsVersion: "1.7.1" CppApplication { consoleApplication: true files: "main.c" cpp.dynamicLibraries: "pthread" cpp.cLanguageVersion: "c11" Group { // Properties for the produced executable fileTagsFilter: product.type qbs.install: true } } }
  • 0 Votes
    5 Posts
    2k Views
    juankiJ

    Hola @Eduardo12l

    Bueno, esto se puede hacer de diferentes formas, te voy a poner un ejemplo emitiendo una señal que nosotros creemos. el primer paso es definir la señal que vamos a emitir, para eso en tu diálogo en el qu etienes el botón definimos la señal en el archivo .h:

    signals: void botonPulsado(int);

    Ahora, tenemos que emitir esa señal cuando se pulse el botón, por ejemplo podemos incrementar el contador y luego emitimos la señal, en el método on_click del botón:

    void Dialog::on_pushButton_clicked() { ++contador; emit botonPulsado(contador); }

    Ahora hay que crear un slot personalizado en el Dialog2, el que va a mostrar el número de click, para eso en su .h creamos un slot:

    public slots: void nuevoValor(int v);

    Y en el .cpp definimos el slot:

    void Dialog2::nuevoValor(int v) { ui->nombre_de_tu_label->setText(QString::number(v)); }

    Ahora ya solo falta establecer la conexión, obvio que para que se muestre el valor, el segundo diálogo tiene que estar abierto:

    dialog2 = new Dialog2(this); connect(this, SIGNAL(botonPulsado(int)), dialog2, SLOT(nuevoValor(int))); dialog2->show();

    Y ya está, salvo errores al escribir, debería funcionar. Si no vas a hacer otra cosa con el contador, solo mostrar el número de veces, puedes definir la señal y el slot sin parámetros y el contador de clicks lo guardas en el diálogo2 y en el slot lo incrementas antes de mostrar el valor.

    Un saludo

  • 0 Votes
    10 Posts
    4k Views
    juankiJ

    @meepo1 said in QSqlDatabasePrivate::removeDatabase: connection 'Conexion' is still in use, all queries will cease to work. ¿Es importante?:

    pero parece mas acertado en todo caso usar el IsOpen().

    Así es, es más apropiado usar isOpen para comprobar si la conexión está abierta que tratar de abrirla.

    El QSqlDatabase::addDatabase necesita declarar una variable como mDatabase solo una vez?:

    mDatabase = QSqlDatabase::addDatabase("QMYSQL", "Conexion1");

    Así es, solo es necesario hacerlo una vez, normalmente se hace al iniciar el programa, personalmente lo hago en el método main, así puedo controlar si se producen errores y mostrar una u otra ventana al usuario, o un error y salir del programa.

    Es decir, si desde otro Dialog necesito utilizar la informacion de esa base de datos solo necesito declarar el QSqlQuery?

    QSqlQuery query (QSqlDatabase::database("Conexion1"));

    Así es, puedes llamar a database desde donde quieras para obtener la conexión con la base de datos.

    Por eso, si llamas a removeDatabase eliminas la conexión y tendrás que crear otra nueva para acceder, por eso te decía que no es necesario hacerlo, al menos en la mayoría de ocasiones, personalmente nunca lo he hecho en los varios programas con Qt que hice ya.

    Un saludo

  • Cerrar QDialog al pasar 3 segundos

    Solved
    5
    0 Votes
    5 Posts
    2k Views
    EddyE

    Hola Xedig,

    Gracias por dar su solución aquí.
    Se puede marcar el tema como resuelto, haciendo clic en el botón Herramientas Tema de la derecha?

    Gracias,

    Eddy

  • No entiendo la siguiente línea de código

    Solved
    2
    0 Votes
    2 Posts
    1k Views
    EddyE

    En C ++
    = es la asignación
    == y! = Se comparan

    por lo que el lado derecho de los = es verdadera o falsa, que se asigna a pos.

  • Error (not find or load the qt platform plugin windows)

    Solved
    5
    0 Votes
    5 Posts
    3k Views
    X

    Juanki perdona por no contestar antes y perdona por no haberme explicado bien, el caso es que "windeployqt ."no me funcionaba pero encontré por ahí que poniendo "windeployqt.exe ." funciona, lo probé y funcionó.
    Un saludo

  • 0 Votes
    2 Posts
    997 Views
    EddyE

    Link : Qt Container classes

  • Pregunta respecto a validar un dato

    Unsolved
    8
    0 Votes
    8 Posts
    4k Views
    lincolnL

    Hola que tal,lo que deberias hacer es usar expresiones regulares.
    Aqui encontraras los ejemplos
    http://doc.qt.io/qt-5/qregularexpression.html

    Te aseguro que con eso solucionaras tu problema. Suerte y saludos.

  • Problema al Instalar Android en Qt?

    Unsolved
    1
    0 Votes
    1 Posts
    597 Views
    No one has replied
  • Problemas para conectarse a 2 bases de datos

    Solved
    3
    0 Votes
    3 Posts
    956 Views
    M

    @juanki :S Oh verdad !! pero que cabezota fui. Ahora lo corro y ya no lanza error. Perdon

  • Recorrer una imagen y uso de libreria opencv

    Unsolved
    1
    0 Votes
    1 Posts
    647 Views
    No one has replied
  • 0 Votes
    5 Posts
    2k Views
    J

    Hola pinballsp , a mi el debug me funciona correctamente en raspberry y en mi pc. Solo que yo programo en C++ y todo lo hago bajo Linux. Quizás alguien que trabaje con windows pueda ayudarte.
    Mirate este post donde lo solucionan instalando un GDB con soporte para python. Lo malo es que la solución que dan es para linux. Busca si hay una version para Windows.
    Yo hace ya muchos años que no trabajo con windows asi que no puedo ayudarte en eso.

    Un saludo