本章節(jié)使用的資料已經(jīng)放到了開發(fā)板網(wǎng)盤資料中,路徑為:11_Linux 系統(tǒng)開發(fā)進階\94_章節(jié)使用資料。 本章節(jié)介紹在 yocto Qt5 文件系統(tǒng)中使用程序旋轉(zhuǎn) Qt 窗口。在嵌入式中有時候需要豎屏顯示,有時候 不能修改 Qt 源碼,那么可以在 Qt 應(yīng)用程序中將窗口旋轉(zhuǎn) 90 度。方法是將主窗口放入到 QGraphicsScene 中, 然后旋轉(zhuǎn) 90 度,通過 QGraphicsView 顯示。子窗口通過指針來訪問父窗口達到旋轉(zhuǎn)的效果。 例程在文檔同一目錄下,實現(xiàn)的功能是點擊主窗口工具欄的打開文件,然后彈出子窗口選擇文件(選 擇普通文件),選擇完點擊確認,子窗口關(guān)閉,主窗口的 textEdit 組件會顯示文件內(nèi)容。 在 main.cpp 中修改主窗口的顯示過程,Rotate 為主窗口類: int main(int argc, char *argv[]) { QApplication a(argc, argv); Rotate w;//主窗口 /* * 旋轉(zhuǎn)主窗口 */ QGraphicsScene *scene = new QGraphicsScene; QGraphicsProxyWidget *gpw = scene->addWidget(&w); gpw->setRotation(90);//旋轉(zhuǎn) 90 度 QGraphicsView *view = new QGraphicsView(scene); view->showFullScreen();//全屏顯示 return a.exec(); } 添加完后如圖 94.1: ![]() 子窗口通過“this”指針指定父窗口將所有項目界面加載到 QGraphicsScene,創(chuàng)建子窗口對象時代碼如 下: void Rotate::showOpenFile() { gf = new getfile(this);//子窗口調(diào)用 scene gf->show(); connect(gf,SIGNAL(OK_signal()),this,SLOT(showText()));//接收子窗口發(fā)送過來的信號 } 完成后如圖 94.2: ![]() 主窗口效果如圖 94.3: ![]() 點擊工具欄的打開文件,彈出子窗口,在子窗口中選擇文件名, ![]() 顯示出文件內(nèi)容: ![]() 在開發(fā)板上運行時要根據(jù)屏幕大小來調(diào)整窗口尺寸。使用此方法一定要把工程中所有的窗口都放到 Scene 中,才能達到旋轉(zhuǎn)的效果。 ![]() |