In condizioni normali se si ridimensiona una finestra Qt i widgets in essa contenuti non si dimensionano a loro volta con effetti grafici piuttosto sgradevoli
Per evitare questo effetto si puo' cliccare destro sul form e selezionare Layout/(...) per ottenere un ridimensionamento automatico
lunedì 1 aprile 2013
venerdì 29 marzo 2013
Sqlite Manager su Windows
Per gestire i file generati da Sqlite su Windows puo' essere utile usare il programma che si scarica gratuitamente da questo link
QTimer in Qt
Questo componente non visuale permette di gestire eventi a tempi predefiniti
La sintassi e' piuttosto semplice: si crea l'oggetto e si associa una funzione che viene richiamata ogni volta che l'oggetto genera un evento
La sintassi e' piuttosto semplice: si crea l'oggetto e si associa una funzione che viene richiamata ogni volta che l'oggetto genera un evento
Nell'esempio seguente gli eventi vengono generati ogni secondo
------------------------------------------#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
void TimerEvent();
private:
Ui::MainWindow *ui;
QTimer timer;
unsigned contatore;
};
#endif // MAINWINDOW_H
------------------------------------------
------------------------------------------
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QTimer>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);}MainWindow::~MainWindow(){delete ui;}void MainWindow::on_pushButton_clicked(){contatore = 0;
connect(&timer, SIGNAL(timeout()), this, SLOT(TimerEvent()));
this->timer.start(1000);
}void MainWindow::TimerEvent()
{
contatore++;
QString str;
str.append(QString("%1").arg(contatore));
ui->pushButton->setText(str);
qDebug()<< contatore;
}
------------------------------------------
Importare Progetti Qt in QtCreator da Windows a Linux
Per poter spostare un progetto in Qt/QtCreator sviluppato su Windows in una Linux Box non e' sufficiente copiare la directory dei sorgenti in quanto una volta aperto il file .pro in QtCreator si avranno errori in particolare sul file Make
e' quindi necessario, prima di aprire il file .pro
1) Cancellare la directory di debug/release
2) Cancellare Makefile, Makefile.debug, Makefile.Release
3) cancella object_script*.*
4) cancellare il file *.pro.user (attenzione non file .pro)
a questo punto si puo' aprire il file .pro e compilare.
I file mancanti verranno ricostruiti sulla base delle impostazione Linux
(informazione ripresa da qui)
e' quindi necessario, prima di aprire il file .pro
1) Cancellare la directory di debug/release
2) Cancellare Makefile, Makefile.debug, Makefile.Release
3) cancella object_script*.*
4) cancellare il file *.pro.user (attenzione non file .pro)
a questo punto si puo' aprire il file .pro e compilare.
I file mancanti verranno ricostruiti sulla base delle impostazione Linux
(informazione ripresa da qui)
Spedire pacchetti UDP con Netcat
Per fare delle prove di server UDP puo' essere utile il programma netcat (che non e' installato di default in Debian ma deve essere aggiunto con apt-get install netcat)
una volta avviato il server UDP si puo' inviare pacchetti UDP con la seguente sintassu
dove localhost e' l'indirizzo del server (in questo caso in locale) e 21567 e' la porta di ascolto del server
echo -n "hello" | nc -u -w1 localhost 21567
una volta avviato il server UDP si puo' inviare pacchetti UDP con la seguente sintassu
dove localhost e' l'indirizzo del server (in questo caso in locale) e 21567 e' la porta di ascolto del server
echo -n "hello" | nc -u -w1 localhost 21567
giovedì 28 marzo 2013
Deploy Application in Qt su Windows
Una volta creata una applicazione Qt funzionante in Window puo' venire il momento di distribuirla
Per prima cosa si deve creare il file eseguibile dentro a QtCreator selezionando l'opzione Release nei metodi di compilazione. Nella cartella del progetto viene quindi creata una sottocartella Release con l'eseguibile
Per visualizzare le dipendenza si puo' usare il programma Depend (scaricabile a questo link)
Si copiano quindi nella directory release dell'eseguibile le DLL necessarie copiandole da C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin
che nel caso in esame sono
QtCore4.dll
QtGui4.dll
QtSql4.dll
a queste vanno aggiunte
libgcc_s_dw2-1.dll
mingwm10.dll
si zippa il contenuto della directory e tramite il software NSIS si crea un installer scegliendo l'opzione "Installer based in Zip File"
Per prima cosa si deve creare il file eseguibile dentro a QtCreator selezionando l'opzione Release nei metodi di compilazione. Nella cartella del progetto viene quindi creata una sottocartella Release con l'eseguibile
Per visualizzare le dipendenza si puo' usare il programma Depend (scaricabile a questo link)
Si copiano quindi nella directory release dell'eseguibile le DLL necessarie copiandole da C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin
che nel caso in esame sono
QtCore4.dll
QtGui4.dll
QtSql4.dll
a queste vanno aggiunte
libgcc_s_dw2-1.dll
mingwm10.dll
si zippa il contenuto della directory e tramite il software NSIS si crea un installer scegliendo l'opzione "Installer based in Zip File"
Mouse Bluetooth su Debian
Questa e' una delle classiche cose che ti fa odiare Linux
Ho provato a connettere il mouse Bluetooth (recuperato di regalo) Sony VGP-BMS30 alla mia Debian Box e sono iniziati i problemi
apt-get install bluez-compat bluetooth
hcitool scan
si legge l'ID del mouse (in questo caso 00:03:C9:D1:61:B3) e poi si lancia
Ho provato a connettere il mouse Bluetooth (recuperato di regalo) Sony VGP-BMS30 alla mia Debian Box e sono iniziati i problemi
La connessione e' piuttosto semplice da eseguire
apt-get install bluez-compat bluetooth
hcitool scan
si legge l'ID del mouse (in questo caso 00:03:C9:D1:61:B3) e poi si lancia
hidd --connect 00:03:C9:D1:61:B3
a questo punto sono iniziati i problemi
L'accoppiamento e' stato eseguito in modo corretto ma lasciando il mouse fermo per qualche decina di secondi questo sembrava essersi messo in modalita' sleep e non dava segni di vita
lanciando il comando
echo on > `readlink -f /sys/class/bluetooth/hci0`/../../../power/level
e' possibile disattivare l'autosospend
e' possibile disattivare l'autosospend
Problemi finiti ??? Nemmeno per idea
Il mouse a questo punto ha iniziato a muoversi con un ritardo notevole ed anche erratico sullo schermo senza un ragione precisa. Consultando questa pagina ho potuto verificare che si tratta di un bug conosciuto dello stack bluez quindi...mi compro un Logitech wireless da 2.4GHz
Iscriviti a:
Post (Atom)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...