• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            zhonghua

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              72 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks

            設(shè)計軟件中各個部件的位置排列,有兩種方法:

            1.設(shè)置widget的在父窗體中的坐標和大小

            widget->move(x,y);

            widget->resize(width,height);

            //widget->setGeometry(QRect(x,y,width,height));

            什么時候用:不想被布局約束,對這種控件可控制時

            例如下面的可活動按鈕

            缺點:在遇到很多個部件時,一個個算坐標會很麻煩

            部件不自動隨父窗體的變化而變化(這里要重寫resizeEvent事件算變化比例建立父子窗體之間的聯(lián)系,而布局很容易做到)

             

            2.布局管理Layout(可控制的部件不要使用布局中,一旦改變會影響到整體布局)

            經(jīng)常要用到的三個布局部件

            QHBoxLayout水平布局

            QVBoxLayout垂直布局

            QGridLayout表格布局

             

            ————————————————————————————————

            QHBoxLayout和QVBoxLayout用法相同

            基本:

            vlayout->addWidget(w1);

            vlayout->addWidget(w2);

            ……

            ——————————————————————————————————

            QGridLayout用法

            layout->addWidget(widget,row,column,rowSpan,columnSpan);

            layout->addLayout(layout,row,column,rowSpan,columnSpan);

            (row,column):控件占據(jù)左上角的單元格位置

            rowSpan:控件占據(jù)的行數(shù)

            columnSpan:控件占據(jù)的列數(shù)(不寫默認為1)

            ——————————————————————————————

            控件隨窗體伸縮

            將布局與主窗體建立聯(lián)系

            layout=new QHBoxLayout(this);

            或者this->setLayout(layout);

            ——————————————————————————————

            layout->addStretch();可伸縮的空間

            layout->setAlignment(Qt::AlignHCenter);//布局內(nèi)控件水平居中 

            layout->setSpacing(10);//控件間隔為10

            layout->setMargin(10);//頁邊距為10

            Qt設(shè)計器中spacer控件

            以上在對控件位置調(diào)整時常用

             

            ——————————————————————————————————

            結(jié)合SizePolicy屬性控制布局管理中的控件的尺寸自適應(yīng)方式

            也就是控件隨主窗體伸縮方式(可自行增大或縮小)

            QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);//可自行增大和收縮

            Fixed:不能放大或縮小

            Minimum:不能小于sizeHint尺寸,可放大(若設(shè)置了最大尺寸)

            Maximum:不能放大,可縮小到允許的最小尺寸(若setMinimumSize(10,10)只能縮小到(10,10))

            Preferred:控件的sizeHint是他的Hint,可以放大或縮小

             

            ————————————————————————————————————————————

            比例因子的使用

            例:布局中有左右兩控件,右邊比左邊水平伸縮2倍

            sizePolicy.setHorizontalStretch(1);
            sizePolicy.setVerticalStretch(0);

            left->setSizePolicy(sizePolicy);

            sizePolicy.setHorizontalStretch(2);
            sizePolicy.setVerticalStretch(0);

            left->setSizePolicy(sizePolicy);

             

            水平伸展比例(1,2)

            垂直伸展比例(0,0)

            ——————————————————————————————————————————————————

            布局顧名思義是對控件的位置的整體規(guī)劃,每個控件之間都存在著位置關(guān)系,所以改變控件(移動、關(guān)閉)會破壞布局

            ——————————————————————————————————————————————————

            結(jié)論:兩種方法結(jié)合使用,應(yīng)該可以應(yīng)對大部分界面布局

            本人是菜鳥,實踐不多,如有錯誤歡迎指正

            —————————————————————————————————————————————————

            上述代碼是為了理解布局使用,Qt設(shè)計器可實現(xiàn)

            posted on 2012-04-09 17:42 米米 閱讀(907) 評論(0)  編輯 收藏 引用 所屬分類: qt
            久久精品夜色噜噜亚洲A∨| 久久精品国内一区二区三区| 亚洲国产成人久久综合一区77| 中文字幕人妻色偷偷久久| 人妻少妇久久中文字幕一区二区| 91精品观看91久久久久久| 久久人做人爽一区二区三区| 亚洲国产精品久久久天堂| 精品无码久久久久久久动漫| 久久精品人成免费| 久久水蜜桃亚洲av无码精品麻豆 | 国产精品一区二区久久不卡| 亚洲嫩草影院久久精品| 日韩人妻无码一区二区三区久久| 亚洲国产成人久久综合碰| 久久精品国产清自在天天线| 青青青国产成人久久111网站| 伊人久久大香线蕉综合5g| 狠狠色丁香婷婷久久综合五月| 免费精品99久久国产综合精品| 久久人人爽人人澡人人高潮AV| 亚洲精品无码久久毛片| 久久er热视频在这里精品| 亚洲精品午夜国产VA久久成人| 狠狠综合久久综合中文88| 久久婷婷国产麻豆91天堂| 亚洲AV无码久久精品狠狠爱浪潮| 久久国产美女免费观看精品| 岛国搬运www久久| 中文字幕成人精品久久不卡| 国产精品久久久久aaaa| 国产日产久久高清欧美一区| 久久精品国产亚洲AV无码偷窥| 久久综合狠狠综合久久综合88| 亚洲精品美女久久久久99小说| 久久久久人妻一区精品| 久久久久国产成人精品亚洲午夜| 韩国三级中文字幕hd久久精品| 91精品国产色综久久| 久久婷婷五月综合成人D啪| 亚洲国产精品综合久久网络|