- 關於縮放的布局
- 所有控件要求與主窗口同時縮放,那么在所有控件設置好布局后,最后點擊最外側的主控件,選擇水平布局或者垂直布局即可。
- 另外每個空間的屬性可更改,如SizePolicy用於設置空間是否可縮放等(如希望縮放,則選擇expanding)。
- 同一主窗口下的多窗口切換
- 可以利用QStackedLayout類進行堆疊放置,然后利用stackLayout->setCurrentIndex(n)來控制顯示的頁面。因為該類設置僅顯示一張畫面,滿足需求。在新增好布局后再在主窗口下重新設置QVBoxLayout網狀布局,一定要再定義一個QWidget,然后在其基礎上添加已設置好的布局Layout,最后再widget->setLayout(Layout);
- 關於單擊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類型然后進行替換。
待更新...