迅爲-iMX6ULL開發板-Qt窗口旋轉

本章節使用的資料已經放到了開發板網盤資料中,路徑爲:11_Linux 系統開發進階\94_章節使用資料。
本章節介紹在 yocto Qt5 文件系統中使用程序旋轉 Qt 窗口。在嵌入式中有時候需要豎屏顯示,有時候
不能修改 Qt 源碼,那麼可以在 Qt 應用程序中將窗口旋轉 90 度。方法是將主窗口放入到 QGraphicsScene 中,
然後旋轉 90 度,通過 QGraphicsView 顯示。子窗口通過指針來訪問父窗口達到旋轉的效果。
例程在文檔同一目錄下,實現的功能是點擊主窗口工具欄的打開文件,然後彈出子窗口選擇文件(選
擇普通文件),選擇完點擊確認,子窗口關閉,主窗口的 textEdit 組件會顯示文件內容。
在 main.cpp 中修改主窗口的顯示過程,Rotate 爲主窗口類:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Rotate w;//主窗口
/*
* 旋轉主窗口
*/
QGraphicsScene *scene = new QGraphicsScene;
QGraphicsProxyWidget *gpw = scene->addWidget(&w);
gpw->setRotation(90);//旋轉 90 度
QGraphicsView *view = new QGraphicsView(scene);
view->showFullScreen();//全屏顯示
return a.exec();
}
添加完後如圖 94.1:

子窗口通過「this」指針指定父窗口將所有項目界面加載到 QGraphicsScene,創建子窗口對象時代碼如
下:
void Rotate::showOpenFile()
{
gf = new getfile(this);//子窗口調用 scene
gf->show();
connect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口發送過來的信號
}
完成後如圖 94.2:

主窗口效果如圖 94.3:

點擊工具欄的打開文件,彈出子窗口,在子窗口中選擇文件名,

顯示出文件內容:

在開發板上運行時要根據屏幕大小來調整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到
Scene 中,才能達到旋轉的效果。