Effettuare una sessione di debug in QtCreator e' molto simile ad una qualsiasi altra IDE.
Cliccando sulla colonna grigia a sinistra dei numeri di riga si inseriscono i break point
Per iniziare il debug ci clicca F5 ed il programma si blocca sul primo breakpoint
Poi ci sono F10 (Step Over) ed F11 (Step Into)
Non e' necessario aggiungere manualmente le watch dato che il tutte le variabili ed il loro valore istantaneo sono elencate nella colonna a destra
giovedì 31 gennaio 2013
Creare una nuova finestra in Qt
Questo post e' per indicare come creare un progetto in Qt basato su piu' form e come farle apparire
Si parte creando un progetto standard (Qt Gui Application) specificando una QMainWindow
Una volta terminata la fase di creazione si clicca sul ramo Form del progetto e si aggiunge una nuova Q Designer Form class
avremo quindi alla fine due form denominati mainwindow e mainwindow2.
A questo punto si aggiunge un pulsante a mainwindow e si aggiunge uno slot su OnClicke e si inizia a modificare il codice come segue (modifiche evidenziate in giallo)
mainwindow.h
---------------------------------
---------------------------------
mainwindow.cpp
---------------------------------
---------------------------------
Il risultato finale e' quello mostrato in immagine
Alla pressione del pulsante sulla finestra1 si apre la finestra2
Si parte creando un progetto standard (Qt Gui Application) specificando una QMainWindow
Una volta terminata la fase di creazione si clicca sul ramo Form del progetto e si aggiunge una nuova Q Designer Form class
avremo quindi alla fine due form denominati mainwindow e mainwindow2.
A questo punto si aggiunge un pulsante a mainwindow e si aggiunge uno slot su OnClicke e si inizia a modificare il codice come segue (modifiche evidenziate in giallo)
mainwindow.h
---------------------------------
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "mainwindow2.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
---------------------------------
mainwindow.cpp
---------------------------------
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mainwindow2.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
MainWindow2 *j = new MainWindow2();
j->show();
}
---------------------------------
Il risultato finale e' quello mostrato in immagine
Alla pressione del pulsante sulla finestra1 si apre la finestra2
mercoledì 30 gennaio 2013
QtDemo
L'aspetto decisamaente positivo nelle Qt che le differenzia da tutte le altre librerie utilizzabili con licenza GPL e' la documentazione presente a livello decisamente professionale
Per avere un'idea del funzionamento delle varie parti di Qt puo' essere comodo utilizzare il comando
qtdemo
che lancia il programma di esempio dove vengono mostrate le varie funzioni e si ha il link diretto al codice di esempio ed alla documentazione
Tale comando, presente in Linux, non si ritrova nel pacchetto del Qt-SDK di Windows (e' un po' nascosto tra gli esempi da compilare)
Per avere un'idea del funzionamento delle varie parti di Qt puo' essere comodo utilizzare il comando
qtdemo
che lancia il programma di esempio dove vengono mostrate le varie funzioni e si ha il link diretto al codice di esempio ed alla documentazione
Tale comando, presente in Linux, non si ritrova nel pacchetto del Qt-SDK di Windows (e' un po' nascosto tra gli esempi da compilare)
Conky
Era un po' che mi scervellavo come si potessero mettere i parametri del sistema operativo sulla finestra di root di X Windows cosi' come si vede per esempio in CrunchBang
La soluzione e' l'utilizzo di Conky, un software che si installa semplicemente con
apt-get install conky
il programma si configura mediante l'apposito file /etc/conky/conky.conf ed e' talmente complesso che di seguito viene dato solo un esempio
La schermata nell'immagine seguente mostra l'uso di Conky in una Debian Testing
per vedere meglio il dettaglio ho ingrandito la parte alta dello schermo
e' generato dal seguente file di configurazione
/etc/conky/conky.conf
-----------------------------------------------
alignment top_middle
background no
border_width 0
cpu_avg_samples 5
default_color white
default_outline_color white
draw_borders no
draw_graph_borders no
draw_outline no
draw_shades no
use_xft yes
xftfont Terminus:size=7
xftalpha 1
gap_x 0
gap_y 0
minimum_size 20 0
maximum_width 1920
net_avg_samples 2
no_buffers yes
out_to_console no
own_window yes
own_window_class Conky
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
update_interval 1
uppercase no
use_spacer left
use_spacer right
double_buffer yes
short_units yes
pad_percents 1
text_buffer_size 512
temperature_unit fahrenheit
TEXT
${font OpenLogos:size=7}Ora ${font}${time %I:%M:%S %p | %B %e, %Y} | Uptime ${uptime} | Temp ${voffset 1}${acpitemp}° F | ${freq_g} GHz | Cpu1
(${cpu cpu1}%) ${voffset -1}| Cpu2 (${cpu cpu2}%)${voffset } | Mem: (${memperc}%) | /: ${fs_free_perc /}% | ${voffset -2} | Batteria ${battery_bar 10,50 BAT0} ${battery_time} | Ip ${addr}
-----------------------------------------------
ps. alcuni parametri sono nulli od errati in quanto lo screenshot e' stato ripreso da una macchina virtuale VirtualBox in cui non funziona l'acpi
La soluzione e' l'utilizzo di Conky, un software che si installa semplicemente con
apt-get install conky
il programma si configura mediante l'apposito file /etc/conky/conky.conf ed e' talmente complesso che di seguito viene dato solo un esempio
La schermata nell'immagine seguente mostra l'uso di Conky in una Debian Testing
per vedere meglio il dettaglio ho ingrandito la parte alta dello schermo
Dettaglio dello schermo |
e' generato dal seguente file di configurazione
/etc/conky/conky.conf
-----------------------------------------------
alignment top_middle
background no
border_width 0
cpu_avg_samples 5
default_color white
default_outline_color white
draw_borders no
draw_graph_borders no
draw_outline no
draw_shades no
use_xft yes
xftfont Terminus:size=7
xftalpha 1
gap_x 0
gap_y 0
minimum_size 20 0
maximum_width 1920
net_avg_samples 2
no_buffers yes
out_to_console no
own_window yes
own_window_class Conky
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
update_interval 1
uppercase no
use_spacer left
use_spacer right
double_buffer yes
short_units yes
pad_percents 1
text_buffer_size 512
temperature_unit fahrenheit
TEXT
${font OpenLogos:size=7}Ora ${font}${time %I:%M:%S %p | %B %e, %Y} | Uptime ${uptime} | Temp ${voffset 1}${acpitemp}° F | ${freq_g} GHz | Cpu1
(${cpu cpu1}%) ${voffset -1}| Cpu2 (${cpu cpu2}%)${voffset } | Mem: (${memperc}%) | /: ${fs_free_perc /}% | ${voffset -2} | Batteria ${battery_bar 10,50 BAT0} ${battery_time} | Ip ${addr}
-----------------------------------------------
ps. alcuni parametri sono nulli od errati in quanto lo screenshot e' stato ripreso da una macchina virtuale VirtualBox in cui non funziona l'acpi
Bentornato /etc/rc.local
Magari non e' proprio una novita' ma mi sono accorto solo adesso che su Debian e' tornato il file /etc/rc.local
Questo file e' sempre stato presente su altre distribuzioni storiche (vedi Red Hat) e viene lanciato alla fine di tutta la catena di boot per poter effettuare delle personalizzazioni
Debian ne era sprovvista di default e doveva essere aggiunto a mano con la combinazione dei comandi
echo “#!/bin/sh\n#\n” >> /etc/rc.local
ln -s /etc/rc.local /etc/rcS.d/S99rclocal
cosi' e' decisamente piu' comodo
-------------------------------------------------------------------
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
Questo file e' sempre stato presente su altre distribuzioni storiche (vedi Red Hat) e viene lanciato alla fine di tutta la catena di boot per poter effettuare delle personalizzazioni
Debian ne era sprovvista di default e doveva essere aggiunto a mano con la combinazione dei comandi
echo “#!/bin/sh\n#\n” >> /etc/rc.local
ln -s /etc/rc.local /etc/rcS.d/S99rclocal
cosi' e' decisamente piu' comodo
-------------------------------------------------------------------
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
exit 0
I3 Tiling WM
Alla ricerca di un Window Manager per un computer con pochissima memoria mi sono imbattuto in I3 che viene defiinito come un Tiling Window Manager (si vedra' fra poco il perche')
Per installarlo e' sufficiente il comando
apt-get install i3
dopo il login lo schermo e' quanto di piu' desolante si possa immaginare (nemmeno windowmaker e' cosi' fuorviante) e quindi si deve iniziare a leggere il manuale che riporta le seguenti combinazioni di tasti
(e' possibile scegliere come tasto modificatore sia Alt che il tasto Windows...in questo caso ho scelto Alt ma direi che per il futuro e' piu' conveniente usare Windows)
In Debian il file di configurazione si trova in HOME/.config/i3/config
Alt+Enter : apre una shell
Alt+Shift+Q : uccide una finestra
Alt+Shift+E : esce da I3
Per ordinare in modo verticale od in modo orizzontale le finestre si puo' usare
Alt+E
Per mandare in primo piano una finestra
Alt+W (per accedere alle finestre nascoste si usa Alt+freccia)
il focus delle finestre segue immediatamente la posizione del mouse ma si puo' passare da una finestra all'altra anche usando la combinazione Alt+freccia
Le nuove finestre vengono occupate dividendo in modo uguale lo schermo (se ci sono tre finestre di default ognuna occupera' il 30%, se sono 4 il 25% ecc). Per modificare questo comportamento si dive entrare in Resize Mode (Alt + r) e poi si con le frecce si riscalano le finestre
e' presente un menu' che si attiva premendo
Alt+D
appare nella barra in alto una serie di comandi, a questo punto si deve iniziare a scrivere il nome dell'applicazione che si intende lanciare per esempio la sequenza q+t+c+r+e+....e si vedra' comparire qtcreator, si clicca o si preme Enter per lanciare l'applicazione
L'aspetto un po' fuorviante che, essendo un tiling window manager, le varie finestre vengono giustapposte affiancate e non sovrapposte
Nella parte bassa dello schermo e' presente la i3status, una barra in cui sono sintetizzate alcune informazioni come lo stato di occupazione del disco fisso, la rete ed il carico della CPU (puo' essere modificata da i3status.conf)
Per installarlo e' sufficiente il comando
apt-get install i3
dopo il login lo schermo e' quanto di piu' desolante si possa immaginare (nemmeno windowmaker e' cosi' fuorviante) e quindi si deve iniziare a leggere il manuale che riporta le seguenti combinazioni di tasti
(e' possibile scegliere come tasto modificatore sia Alt che il tasto Windows...in questo caso ho scelto Alt ma direi che per il futuro e' piu' conveniente usare Windows)
In Debian il file di configurazione si trova in HOME/.config/i3/config
Alt+Enter : apre una shell
Alt+Shift+Q : uccide una finestra
Alt+Shift+E : esce da I3
Per ordinare in modo verticale od in modo orizzontale le finestre si puo' usare
Alt+E
Per mandare in primo piano una finestra
Alt+W (per accedere alle finestre nascoste si usa Alt+freccia)
il focus delle finestre segue immediatamente la posizione del mouse ma si puo' passare da una finestra all'altra anche usando la combinazione Alt+freccia
Le nuove finestre vengono occupate dividendo in modo uguale lo schermo (se ci sono tre finestre di default ognuna occupera' il 30%, se sono 4 il 25% ecc). Per modificare questo comportamento si dive entrare in Resize Mode (Alt + r) e poi si con le frecce si riscalano le finestre
e' presente un menu' che si attiva premendo
Alt+D
appare nella barra in alto una serie di comandi, a questo punto si deve iniziare a scrivere il nome dell'applicazione che si intende lanciare per esempio la sequenza q+t+c+r+e+....e si vedra' comparire qtcreator, si clicca o si preme Enter per lanciare l'applicazione
Esempio del menu di I3 (Alt+D) |
cio' comporta che quando si lancia una applicazione non di terminale lo spazio dello schermo sara' distribuito in modo poco opportuno
comunque si puo' uscire dalla combinazione a tile usando la combinazione Alt+Shift+Spacebar che fa diventare la finestra selezionata come flottante e ridimensionabile
Nella parte bassa dello schermo e' presente la i3status, una barra in cui sono sintetizzate alcune informazioni come lo stato di occupazione del disco fisso, la rete ed il carico della CPU (puo' essere modificata da i3status.conf)
Optimus ROM per GT-S5570i
A causa dei problemi con la precedente rom JellyBlast descritti in questo post ho deciso di fare un passo indietro e rinunciare ad Android 4.1 per avere un telefono piu' stabile e soprattutto funzionante
Per questo motivo adesso ho montato la rom Optimus Rom 2 (scaricabile da questo link)
Per flashare il telefono sono necessari i seguenti file
CWM_GT-S5570i
OptimusRom2_00(2)
update
come al solito si fa partire il telefono in recovery mode (vedi post precedente9 e si seleziona prima il file CWM, si effettua il wipe di tutti i dati e poi si installa il file Optimus Rom 2
Una volta riavviato completamente il telefono e dopo essersi accertati che tutto sia andato bene e' possibile e' possibile riavviare il telefono, riavviare CWM ed eseguire l'update che corregge un problema sulle impostazioni del provider
Come si vede questa ROM e' un passo indietro verso Android 2.3.6 ed ha anche (giustamente) un numero ridotto di programmi preinstallati
Le prime impressioni di uso sono buone ma come gia' detto i problemi riscontrati con la JellyBlast erano saltuari e non prevedibili quindi solo l'uso dira' se e' il caso di continuare con la Optimus
Per questo motivo adesso ho montato la rom Optimus Rom 2 (scaricabile da questo link)
Per flashare il telefono sono necessari i seguenti file
CWM_GT-S5570i
OptimusRom2_00(2)
update
come al solito si fa partire il telefono in recovery mode (vedi post precedente9 e si seleziona prima il file CWM, si effettua il wipe di tutti i dati e poi si installa il file Optimus Rom 2
Una volta riavviato completamente il telefono e dopo essersi accertati che tutto sia andato bene e' possibile e' possibile riavviare il telefono, riavviare CWM ed eseguire l'update che corregge un problema sulle impostazioni del provider
Come si vede questa ROM e' un passo indietro verso Android 2.3.6 ed ha anche (giustamente) un numero ridotto di programmi preinstallati
Le prime impressioni di uso sono buone ma come gia' detto i problemi riscontrati con la JellyBlast erano saltuari e non prevedibili quindi solo l'uso dira' se e' il caso di continuare con la Optimus
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...