Qt的QGridLayout按比例设定布局
2012-08-20 10:57
369 查看
-> 今天做了个小测试,如何使用代码控制QGridLayout中的窗体比例呢?
有两个函数可以用上:
QGridLayout::setColumnStretch(列码, 比例值);
QGridLayout::setRowStretch(行码, 比例值);
-> 下面是需要实现的比例效果图:
第一行和第二行是1:1,第一列和第二列是1:2
->具体使用方法见示例代码:
本文出自 “Neicole — Data Library” 博客,请务必保留此出处http://neicole.blog.51cto.com/5621716/967329
有两个函数可以用上:
QGridLayout::setColumnStretch(列码, 比例值);
QGridLayout::setRowStretch(行码, 比例值);
-> 下面是需要实现的比例效果图:
第一行和第二行是1:1,第一列和第二列是1:2
->具体使用方法见示例代码:
// main.cpp #include <QApplication> #include <QGridLayout> #include <QList> #include <QLabel> #include <QPalette> #include <QString> void setLayout2p1(QGridLayout * , QWidget * , QList<QLabel*> *); int main(int argc, char *argv[]) { QApplication a(argc, argv); // 初始化变量 QPalette myPalette; myPalette.setColor(QPalette::Window, QColor(0, 255, 0)); QList<QLabel *> * labelList = new QList<QLabel*>; for(int i = 0; i < 3; ++i){ QLabel * temp1 = new QLabel("Label Num: " + QString::number(i + 1, 10)); temp1 -> setAutoFillBackground(true); temp1->setPalette(myPalette); labelList->push_back(temp1); } QGridLayout * layout2p1 = new QGridLayout(); QWidget * testWidget = new QWidget(); // 布局处理 setLayout2p1(layout2p1 , testWidget, labelList); int result = a.exec(); // 程序指针delete处理 // 先删除小的,嵌套在大窗体中的小窗体 while(!labelList->isEmpty()){ QLabel * temp = labelList -> last(); labelList -> removeLast(); delete temp; } delete labelList; // 删除label列表 // 然后删除窗口布局 delete layout2p1; // 最后删除窗口 delete testWidget; // 运行widget的析构时,它会将关联的layout析构,还有放在这个layout内的窗体析构 return result; } void setLayout2p1(QGridLayout * layout2p1, QWidget * testWidget, QList<QLabel*> *labelList) { // 放置窗口,设置窗口布局 testWidget -> setLayout(layout2p1); layout2p1 -> addWidget(labelList->at(0), 0, 0); layout2p1 -> addWidget(labelList->at(1), 1, 0); layout2p1 -> addWidget(labelList ->at(2), 0, 1, 2, 1); // 列比 第0列与第1列之比为 1:2 layout2p1 -> setColumnStretch(0, 1); layout2p1 -> setColumnStretch(1, 2); // 行比 第0行与第1行之比为1:1 layout2p1 -> setRowStretch(0, 1); layout2p1 -> setRowStretch(1, 1); testWidget -> show(); return; }
本文出自 “Neicole — Data Library” 博客,请务必保留此出处http://neicole.blog.51cto.com/5621716/967329
相关文章推荐
- Qt的QGridLayout按比例设定布局
- Qt的QGridLayout按比例设定布局
- Qt学习:Qt中QGridLayout按比例设定布局
- QT QGridLayout QHBoxLayout QVBoxLayout 布局管理器运用
- qt QGridLayout网格布局addWidget函数与拉伸因子
- Qt学习:Qt中QGridLayout按比例设定布局
- topic7:Qt入门之常用qt控件认知之布局控件(QFormLayout,QBoxLayout,QGridLayout,QStackLayout)
- 安卓通过layout_weight按比例布局
- Qt中窗体控件按照比例缩放,自适应窗口大小进行布局
- Android Studio App设置线性布局LinerLayout控件占屏幕长宽比例
- 1.按比例布局layout_weight和weightSum
- TableLayout布局表格列按比例切分屏幕
- Qt之表单布局(QFormLayout)
- Qt 布局之 QHBoxLayout Class
- Qt之布局Layout的应用
- 关于android LinearLayout的比例布局
- Qt中的动态布局(Dynamic Layout)
- QGridLayout按比例设定布局
- Qt入门-layout布局
- 安卓按比例布局,layout_weight用法、合用weightSum属性和layout_weight属性