Herramientas de usuario

Herramientas del sitio


fw:qt4

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
fw:qt4 [2013/03/02 19:11]
alfred [Cómo...]
fw:qt4 [2020/05/09 09:25] (actual)
Línea 12: Línea 12:
 std::cout << qPrintable(d.getValue()) << std::endl; std::cout << qPrintable(d.getValue()) << std::endl;
 QTextStream(stdout) << d.getValue();​ QTextStream(stdout) << d.getValue();​
 +</​code>​
 +Para compararlos:​
 +<code cpp>
 +int x = QString::​compare("​aUtO",​ "​AuTo",​ Qt::​CaseInsensitive); ​ // x == 0
 +int y = QString::​compare("​auto",​ "​Car",​ Qt::​CaseSensitive); ​    // y > 0
 +int z = QString::​compare("​auto",​ "​Car",​ Qt::​CaseInsensitive); ​  // z < 0
 +</​code>​
 +
 +=== Leer archivos ===
 +<code cpp>
 +QFile file("/​home/​hamad/​lesson11.txt"​);​
 +if(!file.open(QIODevice::​ReadOnly)) {
 +    QMessageBox::​information(0,​ "​error",​ file.errorString());​
 +}
 +QTextStream in(&​file);​
 +while(!in.atEnd()) {
 +    QString line = in.readLine(); ​   ​
 +    QStringList fields = line.split(","​); ​   ​
 +    model->​appendRow(fields); ​   ​
 +}
 +file.close();​
 </​code>​ </​code>​
 ==== El sistema de meta-objetos ==== ==== El sistema de meta-objetos ====
Línea 95: Línea 116:
 ==== QDialog ==== ==== QDialog ====
 Es la base clase para crear ventanas de diálogo. Estas son utilizadas para que el usuario realice pequeñas tareas. Pueden ser modales o no, devolver un valor y tener botones por  defecto. ​ Es la base clase para crear ventanas de diálogo. Estas son utilizadas para que el usuario realice pequeñas tareas. Pueden ser modales o no, devolver un valor y tener botones por  defecto. ​
 +  * El método ''​exec()''​ muestra el diálogo y hasta que no se cierre no continua con la ejecución. El ''​show()''​ sí continua. 
 +  * El método\signal ''​accept()''​ cerrará el formulario indicando que el usuario acepta.
 ==== Menús principales y acciones ==== ==== Menús principales y acciones ====
 Para crear un menú dentro de una QMainWindow lo que haremos será llamar a ''​menuBar()->​addMenu()''​ que devolverá un objeto ''​QMenu''​ al cual podremos añadir objetos ''​QAction''​ (acciones dentro del programa que se pueden enlazar a menús, atajos de teclado...). Para crear un menú dentro de una QMainWindow lo que haremos será llamar a ''​menuBar()->​addMenu()''​ que devolverá un objeto ''​QMenu''​ al cual podremos añadir objetos ''​QAction''​ (acciones dentro del programa que se pueden enlazar a menús, atajos de teclado...).
Línea 139: Línea 161:
  
 === QGLShaderProgram y QGLShader === === QGLShaderProgram y QGLShader ===
-''​QGLShader''​ es la clase que recoge código GLSL para ser compilado y ''​QGLShaderProgram''​ se encarga de realizar dicha compilación de los diferentes shaders pasados. \\ +''​QGLShader''​ es la clase que recoge código GLSL para ser compilado y ''​QGLShaderProgram''​ se encarga de realizar dicha compilación de los diferentes shaders pasados ​(se han de crear durante la inicialización de OpenGL). \\ 
 Debemos indicar en el constructor ''​QGLShader''​ qué tipo de shader es (QGLShader::​Vertex o QGLShader::​Fragment). \\  Debemos indicar en el constructor ''​QGLShader''​ qué tipo de shader es (QGLShader::​Vertex o QGLShader::​Fragment). \\ 
 Para posteriormente pasar valores a los atributos de input a los shaders debemos usar el método ''​bindAttributeLocation''​ pasándole el nombre de este y su posición (antes de linkar el programa). Si no se enlazasen las posiciones entonces serían cogidas automáticamente. ​ Para posteriormente pasar valores a los atributos de input a los shaders debemos usar el método ''​bindAttributeLocation''​ pasándole el nombre de este y su posición (antes de linkar el programa). Si no se enlazasen las posiciones entonces serían cogidas automáticamente. ​
Línea 150: Línea 172:
 // Se lee el contenido de dos ficheros de código glsl y se vuelcan sobre shader_source // Se lee el contenido de dos ficheros de código glsl y se vuelcan sobre shader_source
  
-vshader->​compileSourceCode(shader_source[0].source); +vshader->​compileSourceFile(vShaderFile);​ // De archivo 
-fshader->​compileSourceCode(shader_source[1].source);+ 
 +const char *fsrc = 
 +         "​uniform sampler2D texture;​\n"​ 
 +         "​varying mediump vec4 texc;​\n"​ 
 +         "​void main(void)\n"​ 
 +         "​{\n"​ 
 +         " ​   gl_FragColor = texture2D(texture,​ texc.st);\n" 
 +         "​}\n"​
 +fshader->​compileSourceCode(fsrc); 
 QGLShaderProgram *program = new QGLShaderProgram(this);​ QGLShaderProgram *program = new QGLShaderProgram(this);​
 program->​addShader(vshader);​ program->​addShader(vshader);​
Línea 190: Línea 221:
   * **qtconfig**:​ Configura el aspecto y el comportamiento de las interficies creadas con Qt en esa máquina.   * **qtconfig**:​ Configura el aspecto y el comportamiento de las interficies creadas con Qt en esa máquina.
 ==== QtCreator ==== ==== QtCreator ====
 +==== Diseñador ====
 +  * Si queremos acceder a los elementos agregados por el diseñador desde el código lo haremos a partir del objeto ''​ui''​ que hay en la clase:
 +<code cpp>
 +// en clase MainWindow, npd es un QDialog:
 +connect(this->​ui->​actionNew_Planet,​ SIGNAL(triggered()),​ npd, SLOT(show()));​
 +</​code>​
 ==== Cómo... ==== ==== Cómo... ====
 === ... Configurar un proyecto C++ simple, sin utilizar Qt? === === ... Configurar un proyecto C++ simple, sin utilizar Qt? ===
fw/qt4.1362251472.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)