16,212
社区成员
发帖
与我相关
我的任务
分享
#ifdef ARM_VERSION
#define PORTRAIT_VIEW
#endif
//#define PORTRAIT_VIEW
#define SPLASHSCREEN_ON
int main(int argc, char *argv[])
{
QTextCodec* codec=QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
QApplication a(argc, argv);
WRITE_LOG(LOG_INFO,"main","pad starts,build tag:%s",QString("%1").arg(BA_BUILD_TAG).toLatin1().data());
qApp->thread()->setObjectName("mainThread");
#ifdef SPLASHSCREEN_ON
QPixmap stStartPixmap(":/images/images/loadingBackground.png");
QSplashScreen stSplashScreen(stStartPixmap);
stSplashScreen.showMessage(QString("App %1 %2 Loading...").arg(BA_PAD_MODEL).arg(BA_PAD_VERSION),Qt::AlignLeft,Qt::white);
#ifndef PORTRAIT_VIEW
stSplashScreen.show();
#endif
#ifdef PORTRAIT_VIEW
//QSplashScreen和MainWidget用两个场景分别旋转,同设为一个未实现
QGraphicsScene preScene;
preScene.addWidget(&stSplashScreen);
QGraphicsView preView(&preScene);
preView.move(0,32);
preView.resize(WIN_HEIGHT,WIN_WIDTH);
preView.rotate(270);
preView.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
preView.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
preView.setFrameShape(QFrame::NoFrame);
preView.setFrameShadow(QFrame::Plain);
preView.show();
#endif //PORTRAIT_VIEW
#endif //SPLASHSCREEN_ON
MainWidget mainW;
#ifndef PORTRAIT_VIEW
mainW.show();
#endif
#ifdef PORTRAIT_VIEW
QGraphicsScene scene;
scene.addWidget(&mainW);
QGraphicsView view(&scene);
#endif
#ifdef SPLASHSCREEN_ON
stSplashScreen.finish(&mainW);
#endif
#ifdef PORTRAIT_VIEW
#ifdef SPLASHSCREEN_ON
preView.hide();
#endif
view.move(0,32);
view.resize(WIN_HEIGHT,WIN_WIDTH);
view.rotate(270);
view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view.setFrameShape(QFrame::NoFrame);
view.setFrameShadow(QFrame::Plain);
view.show();
#endif
#ifdef ARM_VERSION
mainW.grabKeyboard();
// mainW.setFocus();
#endif
return a.exec();
}
这是我的嵌入式代码。有些其他的多余的代码。不过你要注意,可能是我环境没有配置好,或者qt没有用对,所以旋转以后在嵌入式上,事件特别是鼠标事件会有问题。(x86不会)