0
A
回答
0
使用QGridLayout,大小爲4x4。然後讓每個按鈕使用2x2網格佈局單元格,您可以使用右邊的QGridLayout::addWidget()
overload。設置網格佈局後,有給columnSpan
和2
0
rowSpan
(聽起來像一個家庭作業的問題。)
我的第一種方法是隻母第二部件到第一部件。然後你必須得到第二個部件來調整第一個部件。我已經在pop up dialogs in iOS的過去做過。
@ hyde的解決方案對於這個問題要優雅得多。我將所有內容放在堆上,但對於這樣一個簡單的應用程序,所有內容都可以放在堆棧上(QWidget * w = new QWidget();
=>QWidget w;
)。
#include <QApplication>
#include <QWidget>
#include <QGridLayout>
#include <QPushButton>
#include <QList>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget * w = new QWidget();
QGridLayout * grid = new QGridLayout();
QList <QPushButton *> buttons;
for(int i = 0; i< 5; i++)
{
buttons.append(new QPushButton("Button "+ QString::number(i+1)));
buttons.last()->setFixedSize(400, 300);
}
grid->addWidget(buttons.at(0),0,0,2,2);// upper left
grid->addWidget(buttons.at(1),0,2,2,2);// upper right
grid->addWidget(buttons.at(2),2,0,2,2);// lower left
grid->addWidget(buttons.at(3),2,2,2,2);// lower right
grid->addWidget(buttons.at(4),1,1,2,2);// centered
w->setLayout(grid);
w->show();
return a.exec();
}
如果你想在網格元素,以保持居中,不能有縫隙,當你調整網格的大小,請確保您添加一個緩衝行/列外繞,併爲他們延長值。像這樣的example。
希望有所幫助。
+0
感謝您的回覆。我會嘗試它讓你知道。 – guilhermemfreire
相關問題
- 1. AngularJS:雙列奇/偶佈局
- 2. 兩列布局排列格
- 3. 排序的列,並在指數佈局
- 4. qt unexpandable佈局?
- 5. 重新排列Formtastic佈局
- 6. 排列圖標和佈局
- 7. Android動態排列布局
- 8. QT透明佈局
- 9. Qt - 鍵盤佈局
- 10. Qt動態佈局
- 11. Qt在主佈局中添加布局
- 12. Qt從其他佈局刪除佈局
- 13. Qt佈局/小部件交互 - 佈局內的佈局
- 14. QT網格佈局橫跨多個列
- 15. 在Qt佈局中列出QCheckBox項目
- 16. 最奇怪的Qt佈局「吃肉」問題
- 17. QCreator中的Qt佈局
- 18. 的Qt:在RTL佈局
- 19. 按版式排列的Android佈局
- 20. 排列布局中的按鈕
- 21. 重新排列UIAlertView的按鈕佈局
- 22. 奇怪的佈局問題
- 23. 奇怪的佈局行爲
- 24. 奇怪的佈局行爲
- 25. Qt排序列
- 26. 在Qt中清除佈局
- 27. Qt佈局中心本身
- 28. 佈局管理器Qt中
- 29. Qt繪製垂直佈局
- 30. QT佈局 - 初始方向
我會嘗試。謝謝 – guilhermemfreire