
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | /*
* JViewer.java
* Version : 2
*
* Created on 2 novembre 2007
* Modified on 13 novembre 2007
*/
/* Importation des espaces de nom nécessaires */
import com.trolltech.qt.core.*;
import com.trolltech.qt.gui.*;
import com.trolltech.qt.core.Qt.*;
import com.trolltech.qt.gui.QSizePolicy.Policy;
/* Définition de l'application et de ses attributs */
public class JViewer extends QMainWindow {
private String curFile; // Fichier actuellement ouvert
private QPixmap pixImage;
private QLabel widgetImage; // Conteneur de l'image
private QMenu fileMenu; // Menu Fichier
private QMenu helpMenu; // Menu Aide
private QToolBar fileToolBar; // Barre d'outil Fichier
private QAction openAct; // Action Ouvrir
private QAction sizeToFitAct; // Action Ouvrir
private QAction exitAct; // Action Quitter
private QAction aboutAct; // Action A Propos de JEditor
private QAction aboutQtAct; // Action A propos de Qt Jambi
private String rsrcPath = "classpath:images"; // Répertoire des images
/* Définition du constructeur */
public JViewer()
{
setSizePolicy(Policy.Expanding, Policy.Expanding);
setMinimumSize(240, 160);
QMenuBar menuBar = new QMenuBar(); // On crée la barre de menu
pixImage = new QPixmap(rsrcPath+"/JViewer.png");
widgetImage = new QLabel(this);
widgetImage.setSizePolicy(Policy.Expanding, Policy.Expanding);
widgetImage.setAlignment(AlignmentFlag.AlignCenter);
widgetImage.setPixmap(pixImage);
resize();
setMenuBar(menuBar); // On ajoute la barre de menu à notre Application
setCentralWidget(widgetImage); // On ajoute la zone de Texte
/* On lance les méthodes de création des différents attributs de notre fenêtre */
try {
createActions();
} catch (Exception e) {
e.printStackTrace();
}
createMenus();
createToolBars();
createStatusBar();
/* Le fichier de départ est un fichier vide */
setCurrentFile("");
}
/* Méthode d'ouverture du fichier */
public void open()
{
String fileName = QFileDialog.getOpenFileName(this);
if (fileName.length() != 0)
loadFile(fileName);
}
public void sizeToFit(){
widgetImage.setPixmap(pixImage.scaled(widgetImage.size(),
AspectRatioMode.KeepAspectRatio,
TransformationMode.SmoothTransformation));
}
/* Fonction A propos de JEditor */
public void about()
{
QMessageBox.about(this,
tr("A Propos de JViewer"),
tr("<b>JViewer<b> est une petite application "+
"réalisé par <a href='http://www.trunat.fr/'>Natim</a>. Pour découvrir QT Jambi."));
}
/* Création des actions des menus et des toolbars */
private void createActions()
{
/* Actions du menu Fichier */
openAct = new QAction(new QIcon(rsrcPath + "/open.png"), tr("&Ouvrir..."), this);
openAct.setShortcut(tr("Ctrl+O"));
openAct.setStatusTip(tr("Ouvrir un fichier"));
openAct.triggered.connect(this, "open()");
sizeToFitAct = new QAction(new QIcon(rsrcPath + "/sizeToFit.tif"), tr("Afficher l'image dans sa taille d'origine"), this);
sizeToFitAct.setShortcut(tr("Ctrl+A"));
sizeToFitAct.setStatusTip(tr("Taille d'origine"));
sizeToFitAct.triggered.connect(this, "resize()");
exitAct = new QAction(new QIcon(rsrcPath + "/exit.png"), tr("Quitter"), this);
exitAct.setStatusTip(tr("Quitter l'application"));
exitAct.triggered.connect(QApplication.instance(), "quit()");
/* Action du menu Aide */
aboutAct = new QAction(new QIcon(rsrcPath + "/about.png"), tr("A Propos de &JViewer"), this);
aboutAct.setStatusTip(tr("A Propos de JEditor"));
aboutAct.triggered.connect(this, "about()");
aboutQtAct = new QAction(new QIcon(rsrcPath + "/qt-logo.png"), tr("A Propos de &Qt"), this);
aboutQtAct.setStatusTip(tr("Show the Qt library's About box"));
aboutQtAct.triggered.connect(QApplication.instance(), "aboutQt()");
}
/* Création des Menus */
private void createMenus()
{
/* Menu fichier */
fileMenu = menuBar().addMenu(tr("&Fichier"));
fileMenu.addAction(openAct);
fileMenu.addAction(sizeToFitAct);
fileMenu.addSeparator();
fileMenu.addAction(exitAct);
/* Menu Aide */
helpMenu = menuBar().addMenu(tr("&Aide"));
helpMenu.addAction(aboutAct);
helpMenu.addAction(aboutQtAct);
}
/* Création de la barre de menu */
private void createToolBars()
{
fileToolBar = addToolBar(tr("Fichier"));
fileToolBar.addAction(openAct);
fileToolBar.addAction(sizeToFitAct);
fileToolBar.addSeparator();
fileToolBar.addAction(exitAct);
}
/* Création de la Barre de Status */
private void createStatusBar()
{
statusBar().showMessage(tr("Pret"));
}
/* Charger un fichier */
public void loadFile(String fileName)
{
pixImage = new QPixmap(fileName);
if(pixImage == null){
QMessageBox.warning(this, tr("JViewer"), String.format(tr("Erreur à l'ouverture de l'image %1$s:\n%2$s."), fileName));
return;
}
widgetImage.clear();
widgetImage.setPixmap(pixImage);
resize();
setCurrentFile(fileName);
statusBar().showMessage(tr("Image Chargée"), 2000);
}
/* On enregistre le nom du fichier ouvert comme nom du fichier courant */
public void setCurrentFile(String fileName)
{
curFile = fileName;
setWindowModified(false);
String shownName;
if (curFile.length() == 0)
shownName = tr("Aucun fichier");
else
shownName = curFile;
setWindowTitle(String.format(tr("%1$s[*] - %2$s"), shownName, tr("JViewer")));
}
protected void paintEvent(QPaintEvent e) {
sizeToFit();
}
protected void resize(){
if(pixImage.size().subtract(new QSize(240,160)).isValid()){
super.resize(pixImage.size().add(size().subtract(widgetImage.size())));
}else{
super.resize(new QSize(240,160));
widgetImage.setPixmap(pixImage);
}
}
/* Lancement de l'application */
public static void main(String[] args) {
QApplication.initialize(args);
JViewer application = new JViewer();
application.show();
QApplication.exec();
}
} |
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
166 Zéros connectés |
8 requêtes |
0.0262s (0.0151s)