环境 vs2010 QT4.8.4
1、建立QT Application程序,之后的默认即可。
2、编辑satimg.h。先给出整体代码
#ifndef SATIMG_H #define SATIMG_H /* 第1和第2句定义头文件包含卫哨 目的是防止重复包含头文件 这两句与结尾"#endif"42句结合在一起使用才是完整的 */ #include <QtGui/QMainWindow> #include "ui_satimg.h" //前置声明 class QAction; class QMenu;
class SatImg : public QMainWindow { Q_OBJECT public: SatImg(QWidget *parent = 0, Qt::WFlags flags = 0); ~SatImg();
void creatMenus(); void creatActions(); private: Ui::SatImgClass ui; public slots: void slotOpenFile(); private: QMenu *menuFile; QAction *actionOpenFile; }; #endif // SATIMG_H
3、前置声明
//前置声明 class QAction; class QMenu;
4、添加函数以及槽函数.这里我建立没声明一个函数,便在satimg.cpp中将这个函数建好
public: void creatMenus(); void creatActions(); public slots: void slotOpenFile();
5、声明菜单和动作
private: QMenu *menuFile; QAction *actionOpenFile;
6、编辑satimg.cpp。先给出整体代码。基本给出也就结束了。
#include "satimg.h" SatImg::SatImg(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags) { ui.setupUi(this); //UI先setupUi之后才能实现其他操作 setWindowTitle(tr("SatImgFrame")); creatActions(); creatMenus(); } SatImg::~SatImg() { } void SatImg::creatMenus() { //文件菜单 menuFile = menuBar()->addMenu(tr("File")); //menuFile->addAction(actionNewfile); menuFile->addAction(actionOpenFile); //menuFile->addAction(actionSaveFileSave); //menuFile->addAction(actionExit); } void SatImg::creatActions() { //open file action“打开”动作 //actionOpenFile= new QAction(QIcon(":/images/open.png"),tr("Open"),this); actionOpenFile= new QAction(tr("Open"),this); actionOpenFile->setShortcut(tr("Ctrl+O")); actionOpenFile->setStatusTip(tr("opena file")); connect(actionOpenFile,SIGNAL(triggered()),this,SLOT(slotOpenFile())); } void SatImg::slotOpenFile() { SatImg *my=new SatImg(); my->show(); }