Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt : 5.10.0 - Qt Creator : 4.5.0 - Qt Installer : 3.0.2 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

[Qt3] Instance de classe ? [linux]

Salut ,
je suis en train de lire un tuto pour construire un tableur .Je ne comprend pas la construction de mes menus .
Voilà ici je vois comment est chargé l'icône du menu et son texte et meme le texte du raccourci clavier ; il s'agit bêtement de creer un nouveau fichier

newAct = new QAction(tr("&New"), tr("Ctrl+N"), this);
newAct->setIconSet(QPixmap::fromMimeSource("new.png"));
Ce que je ne comprend pas c'est que dans le reste du tuto je ne vois pas ou sont codés les autres menus comme enregistrer et Ctrl+S Open , Save ,SaveAs
Copy .
J'aie l'impression que c'est inclu automatiquement (notion d'instance ?),mais je ne sais pas ou ni pourquoi .(Ou alors c'est le tuto qui est mal fait et c'est à moi de rajouter à la main des lignes comme
saveAct = new QAction(tr("&save"), tr("Ctrl+S"), this);
saveAct->setIconSet(QPixmap::fromMimeSource("save.png"));
etc ...)

Voici comment c'est codé dans le tuto

void MainWindow::createActions()
{
newAct = new QAction(tr("&New"), tr("Ctrl+N"), this);
newAct->setIconSet(QPixmap::fromMimeSource("new.png"));
newAct->setStatusTip(tr("Create a new spreadsheet file"));
connect(newAct, SIGNAL(activated()), this, SLOT(newFile()));

showGridAct = new QAction(tr("&Show Grid"), 0, this);
showGridAct->setToggleAction(true);
showGridAct->setOn(spreadsheet->showGrid());
showGridAct->setStatusTip(tr("Show or hide the spreadsheet s " "grid"));
connect(showGridAct, SIGNAL(toggled(bool)), spreadsheet, SLOT(setShowGrid(bool)));

aboutQtAct = new QAction(tr("About &Qt"), 0, this);
aboutQtAct->setStatusTip(tr("Show the Qt library s About box"));
connect(aboutQtAct, SIGNAL(activated()), qApp, SLOT(aboutQt()));
}

void MainWindow::createMenus()
{

fileMenu = new QPopupMenu(this);
newAct->addTo(fileMenu);
openAct->addTo(fileMenu);
saveAct->addTo(fileMenu);
saveAsAct->addTo(fileMenu);
fileMenu->insertSeparator();
exitAct->addTo(fileMenu);
for (int i = 0; i < MaxRecentFiles; ++i) recentFileIds[i] = -1;

editMenu = newQPopupMenu(this);
cutAct->addTo(editMenu);
copyAct->addTo(editMenu);
pasteAct->addTo(editMenu);
deleteAct->addTo(editMenu);

selectSubMenu = new QPopupMenu(this);

selectRowAct->addTo(selectSubMenu);
selectColumnAct->addTo(selectSubMenu);
selectAllAct->addTo(selectSubMenu);

editMenu->insertItem(tr("&Select"), selectSubMenu);
editMenu->insertSeparator();

findAct->addTo(editMenu);
goToCellAct->addTo(editMenu);

Menu = new QPopupMenu(this);
recalculateAct->addTo(toolsMenu);
sortAct->addTo(toolsMenu);
optionsMenu = new QPopupMenu(this);
showGridAct->addTo(optionsMenu);

autoRecalcAct->addTo(optionsMenu);
helpMenu = new QPopupMenu(this);
aboutAct->addTo(helpMenu);
aboutQtAct->addTo(helpMenu);
menuBar()->insertItem(tr("&File"), fileMenu);
menuBar()->insertItem(tr("&Edit"), editMenu);
menuBar()->insertItem(tr("&Tools"), toolsMenu);
menuBar()->insertItem(tr("&Options"), optionsMenu);
menuBar()->insertSeparator();
menuBar()->insertItem(tr("&Help"), helpMenu);
}

Réponses

  • Parce-que dans le tutos, comme la création des actions est répétitive, il n'y a de montré que le premier.
    C'est d'ailleurs indiqué en haut de la page 45 (si on parle bien du même livre) ;) .
Connectez-vous ou Inscrivez-vous pour répondre.