1. 程式人生 > >Qt裡的堆疊視窗的使用(系列一)

Qt裡的堆疊視窗的使用(系列一)

這段時間做了一個數據結構課設,裡面遇到了一些問題,有些在網上可以找到對應解決方法,有些找不到,於是就把這些自己找到的解決方法在這裡和大家分享一下吧。由於本人是一個初學者,如果表達不當,請多多諒解。
首先是對堆疊視窗的使用,當時在網上查詢的時候發現很多部落格都是如出一轍,連一個字都不帶改的,雖然對轉載這種行為沒有什麼好指責的,但是總是轉載一些別人的東西,整個網路竟然找不到堆疊視窗的實用的使用方法,最後找了官方的文件才解決了問題,所以這也告訴大家,官方的文件雖然是英文的,但是有時候比中文的還好用。
切入正題:
這裡寫圖片描述
這裡寫圖片描述
這是一個堆疊視窗都演示過程,相當於把一個小型的視窗嵌入到一個大的視窗中,其中的實現過程是這樣的:
我是用的是設計師的拖拽視窗實現的,當然用程式碼實現是一樣的
首先在主視窗中需要嵌入子視窗的地方拉入一個Layout父佈局,在父佈局中放入堆疊視窗。
這裡寫圖片描述


這裡寫圖片描述

然後新建一個設計師介面,作為子視窗,在主介面對應的類的標頭檔案中中例項化這個設計師類,這裡寫圖片描述

最後在主介面的對應的類的.cpp檔案中進行新增就可以了:
這裡寫圖片描述

最後再在主介面的父類的layout裡面對堆疊視窗進行新增:
這裡寫圖片描述

到這裡,所有的工作基本做完了,剩下的想要顯示堆疊視窗中的那些子視窗只需要在按鈕的觸發事件中填寫
ui->theFatherScreenStack->setCurrentWidget(searchSentenceWidget);
使用setCurrentWidget方法就可以實現這個功能。

這是官方文件給的一段示例程式碼,這些都是從這個示例程式碼中衍生出來的:

      QWidget *firstPageWidget = new QWidget;
      QWidget *secondPageWidget = new QWidget;
      QWidget *thirdPageWidget = new QWidget;

      QStackedWidget *stackedWidget = new QStackedWidget;
      stackedWidget->addWidget(firstPageWidget);
      stackedWidget->addWidget(secondPageWidget);
      stackedWidget->
addWidget(thirdPageWidget); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(stackedWidget); setLayout(layout);

這裡是這個工程的原始碼,喜歡的朋友可以下載看一看:http://download.csdn.net/download/kejizuiqianfang/9920212