本章節使用的資料已經放到了開發板網盤資料中,路徑為: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 中,才能達到旋轉的效果。 ![]() ![]() ![]() |