⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.cpp~

📁 Linux 环境下
💻 CPP~
字号:
#include <qapplication.h>#include <qwidget.h>#include <qsignalmapper.h>#include <qworkspace.h>#include <qaction.h>#include <qtoolbar.h>#include <qmenubar.h>#include <qstatusbar.h>#include <qpopupmenu.h>#include <qmessagebox.h>#include <qtextcodec.h>#include <qvbox.h>#include "mypictures.h"#include "mypicture.h"#include "mainwindow.h"
#include "mdichild.h"#include <string>using namespace std;//init main window,create menu, create toolbar,create statusbarMainWindow::MainWindow() : QMainWindow( 0, "Main Window", WDestructiveClose )
{    m_pVBox = new QVBox( this );    m_pVBox->setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
    m_pWorkspace = new QWorkspace(m_pVBox);
    setCentralWidget(m_pVBox);    m_pWorkspace->setScrollBarsEnabled(true);

    CreateActions();
    CreateMenus();
    CreateToolBars();
    CreateStatusBar();
     m_pMyPictures = new CMyPictures();    m_pMyPictures->BuildPictures("./table/describePicture.txt");
        list<CMyPicture*>::iterator iter;    int index = 0;                 for( iter = m_pMyPictures->m_pPictureList->begin(); iter != m_pMyPictures->m_pPictureList->end(); iter++)    {         CMyPicture* pPic = (CMyPicture*)*iter;                    m_pView[index] = CreatePicture(pPic, index);       index++;    }     
}MainWindow::~MainWindow(){    delete m_pMyPictures;}void MainWindow::CreateActions(){    m_pExitAct = new QAction( trUtf8("退出调度员工作站"), trUtf8("退出(&X)"), CTRL+Key_X, this, "exit");
    connect(m_pExitAct, SIGNAL(activated()), qApp, SLOT(closeAllWindows()));
    m_pCascadeAct = new QAction( "Cascade", "&Cascade", 0 , this, "cascade");    connect(m_pCascadeAct, SIGNAL(activated()), m_pWorkspace, SLOT(cascade()));    m_pTileAct = new QAction( "Tile", "&Tile", 0, this, "tile");    connect(m_pTileAct, SIGNAL(activated()), m_pWorkspace, SLOT(tile()));    m_pTileHorizontalAct = new QAction( "Tile Horizontal", "Tile &Horizontal", 0, this, "tileHorizontal");
    connect(m_pTileHorizontalAct, SIGNAL(activated()), this, SLOT(OnTileHorizontal()));         m_pAboutAct = new QAction( trUtf8("关于调度员工作站"),trUtf8("关于(&A)"), CTRL+Key_H,this,"help");
    connect(m_pAboutAct, SIGNAL(activated()), this, SLOT(About()));  }void MainWindow::CreateMenus(){    m_pPicMenu = new QPopupMenu(this);     menuBar()->insertItem( trUtf8("画面(&P)"), m_pPicMenu);           m_pPicMenu->insertSeparator();
    m_pExitAct->addTo(m_pPicMenu);
        m_pWindowMenu = new QPopupMenu(this);    menuBar()->insertItem( trUtf8("窗口(&W)"), m_pWindowMenu);    m_pTileAct->addTo(m_pWindowMenu);    m_pTileHorizontalAct->addTo(m_pWindowMenu);    m_pCascadeAct->addTo(m_pWindowMenu);    m_pHelpMenu = new QPopupMenu(this);
    menuBar()->insertItem( trUtf8("帮助(&H)"), m_pHelpMenu);
    m_pAboutAct->addTo(m_pHelpMenu);
}void MainWindow::InsertPictureNameToMenu(QString picName, int index){    m_pPicMenu->insertItem( picName, this, SLOT(ClickMenuOnPictureName(int)), 0 ,index,index);}void MainWindow::ClickMenuOnPictureName(int id){    qDebug("id = %d\n",id);    CMyPicture* pPic = m_pMyPictures->GetMyPicture(id);    if( pPic != 0)    {        printf("PicID = %s\n", pPic->m_PicProperty.PicID.c_str());    }    if(m_pView[id]->isHidden())       m_pView[id]->show();    else        m_pView[id]->setFocus();}MdiChild* MainWindow::CreatePicture(CMyPicture* pPic, int index){    QTextCodec* gbk_codec = QTextCodec::codecForName("GBK");    QString gbk_string = gbk_codec->toUnicode(pPic->m_PicProperty.GraphName.c_str());        InsertPictureNameToMenu(gbk_string, index);        MdiChild* mdiWindos = new MdiChild(pPic, m_pWorkspace, 0, WDestructiveClose);    mdiWindos->setCaption(gbk_string);    mdiWindos->hide();    pPic->m_id = index;    return mdiWindos;		}void MainWindow::CreateToolBars(){    }void MainWindow::CreateStatusBar(){  //statusBar()->showMessage(tr("OK"));}void MainWindow::About()
{
   QMessageBox::about(this, trUtf8("关于OGW"),
            trUtf8("公司:CDGM 软件名:OGW"));
}MdiChild *MainWindow::ActiveMdiChild()
{
    return (MdiChild *)(m_pWorkspace->activeWindow());
}void MainWindow::OnTileHorizontal(){    // primitive horizontal tiling    QWidgetList windows = m_pWorkspace->windowList();    if ( !windows.count() )	return;        int heightForEach = m_pWorkspace->height() / windows.count();    int y = 0;    for ( int i = 0; i < int(windows.count()); ++i ) {	QWidget *window = windows.at(i);	if ( window->testWState( WState_Maximized ) ) {	    // prevent flicker	    window->hide();	    window->showNormal();	}	int preferredHeight = window->minimumHeight()+window->parentWidget()->baseSize().height();	int actHeight = QMAX(heightForEach, preferredHeight);		window->parentWidget()->setGeometry( 0, y, m_pWorkspace->width(), actHeight );	y += actHeight;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -