qt布局管理-縮放、多窗口切換


  1. 關於縮放的布局
  • 所有控件要求與主窗口同時縮放,那么在所有控件設置好布局后,最后點擊最外側的主控件,選擇水平布局或者垂直布局即可。
  • 另外每個空間的屬性可更改,如SizePolicy用於設置空間是否可縮放等(如希望縮放,則選擇expanding)。
  1. 同一主窗口下的多窗口切換
  • 可以利用QStackedLayout類進行堆疊放置,然后利用stackLayout->setCurrentIndex(n)來控制顯示的頁面。因為該類設置僅顯示一張畫面,滿足需求。在新增好布局后再在主窗口下重新設置QVBoxLayout網狀布局,一定要再定義一個QWidget,然后在其基礎上添加已設置好的布局Layout,最后再widget->setLayout(Layout);
  1.  關於單擊QTreeWidget不同子項如何進行響應的參考回答,如下代碼:
 1 //這是方法一:
 2 //適用於子節點較少時
 3 bool eventFilter(QObject * pObject, QEvent * pEvent)
 4 {
 5     if(QEvent::MouseButtonPress == pEvent.type() /* 判斷是不是按鍵事件 */)
 6     {
 7         QMouseEvent *pMouseEvent = static_cast<QMouseEvent*>(pEvent);
 8         if(Qt::RightButton == pMouseEvent->button()  /* 判斷是不是右鍵按下 */)
 9         {
10             if(pObject == **  /* 判斷 pObject是否等於某個treeWidgetItem*/)
11                 {
12                   /* 顯示不同的菜單 */
13                 }
14         }
15            
16     } 
17 }
18  
19 //方法二:
20 //就是繼承,重載按鍵事件
21 //適用於子節點較多,以及子節點右鍵菜單多而不同情況

另一種回答:

利用子節點是否有父節點來判斷,點擊節點是否響應槽函數。如:

QTreeWidgetItem *parent = item->parent();//獲得父節點
  if(NULL==parent)
      return;

 

 QList是一個最常用的容器類,用它定義一個對象通常是 

QList <int>list;
其中int代表給定的類型,也就是說現在定義了一個有符號整形的容器,讓后給里面裝值
list<<2<<3<<4<<6;
現在就可以使用foreach(int i,list)這樣就可以遍歷整個容器了.分別將容器中的值放到循環遍歷放到變量中。
    QList <int>list;
    list <<2<<4<<1<<6;
    foreach(int str,list)
    qDebug()<<str<<endl;

 

Qt提供的一種格式化字符串輸出的函數arg():
1. str=QString(“%1 %2 (%3s-%4s)”)
2. arg(“permissive”).arg(“society”).arg(1950).arg(1970);
這段代碼中,%1, %2, %3, %4作為占位符,將被后面的arg()函數中的內容依次替換,比如%1將被替換成permissive,%2將被替換成society,%3將被替換成1950,%4將被替換曾1970,最后,這句代碼輸出為:permissive society (1950s-1970s). arg()函數比起sprintf()來是類型安全的,同時它也接受多種的數據類型作為參數,都會被轉化為QString類型然后進行替換。

 

待更新...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM