[SNIPPET]Centrar Ventana QT5

Añado este snippet para centrar una ventana en QT usando C++, ya que en español no hay mucha información.

 

1
2
3
4
5
6
7
8
9
10
11
12
void MainWindow::centerWidget()
{
QDesktopWidget *s = QApplication::desktop();
int ancho = s->width();
int alto = s->height();
QSize tam_ventana = this->size();
int mov_ancho = tam_ventana.width();
int mov_alto = tam_ventana.height();
int coo_ancho = (ancho/2) - (mov_ancho/2);
int coo_alto = (alto/2) - (mov_alto/2);
move(coo_ancho,coo_alto);
}

Saludos espero les sirva.

[QT]Conexion SQLITE en QT 5 (2da Parte)

En la primera parte ya hemos visto como conectarnos a nuestra base de datos Sqlite, ahora debemos empezar a crear consultas, pues retomemos el codigo del proyecto anterior y añadamos un nuevo metodo a nuestro sql.h:

 

1
2
3
4
5
6
7
8
9
10
11
12
#ifndef SQL_H
#define SQL_H
#include <QtSql>
class sql
{
public:
   sql();
   bool conectar();
   void consulta();
   QSqlDatabase db;
};
#endif // SQL_H

Luego definiremos el método en nuestro sql.cpp así:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
.......
void sql::consulta()
{
   this->conectar();
   if(db.isOpen())
  {
     QSqlQuery qry;
     qry.exec("CREATE TABLE IF NOT EXISTS admins (id integer primary key autoincrement, user text, passwd varchar[8])"); // Crea Tabla ADMINS solo si no existe.
     QString stmt; //Statement
     QTextStream txtstr(&stmt);
     txtstr << "INSERT INTO admins (user, passwd) values (\"" << "admin" << ", " << "12345" <<"\")";
     if(qry.exec(stmt))
        return true;
     txtstr << "SELECT * FROM admins;
     if(qry.exec(stmt))
     {
         while(qry.next())
           {
           qDebug() << "id:" << qry.value(0).toString();
           qDebug() << "user: " << qry.value(1).toString();
           qDebug() << "paswd: " << qry.value(2).toString();
           }
}

db.close(); }

Si todo salio bien esto debería imprimir:

1
2
3
id: 1
user: admin
passwd: 12345

[PYQT] keyPressEvent en PyQT.

py2app-pyqt

En ocasiones queremos usar teclas de acceso rápido en nuestras aplicaciones en QT 4.7 se debe reescribir el método keyPressEvent(self, event), para conectar la señal de nuestro widget a los Slots correspondientes, les ejemplo en PyQt:

1
2
3
4
5
6
def keyPressEvent(self, event):
   key = event.key()
   if key == QtCore.Qt.Key_0:
      self.on_btn0_clicked()
 
 <a href="http://codigolibre.hol.es/2014/01/pyqt-keypressevent-en-pyqt/" class="more-link"><span class="btn btn-small">Continue reading</span></a>