pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

QScrollArea 缺少滾動條

QScrollArea missing Scrollbar(QScrollArea 缺少滾動條)
本文介紹了QScrollArea 缺少滾動條的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我認(rèn)為這是與以下相同的問題:QScrollArea resizing QWidget

I think it is the same problem as : QScrollArea resizing QWidget

但沒有解決方案.所以讓我揭露這個問題.

but there are not solution. so let me expose the problem.

  • 測試2繼承自QWidget:
    • 組成:
      • QSpinBox 的向量
      • QScrollArea
      • QVBoxLayout
      • 沒有滾動條
      • [FIXED] 滾動條的內(nèi)部被縮小以適應(yīng)如此小的空間,無法讀取任何內(nèi)容(可以在執(zhí)行期間調(diào)整窗口大小,這將導(dǎo)致內(nèi)部變大且可讀,但不會出現(xiàn)滾動條)

      我認(rèn)為問題來自單一來源 :: 尺寸提示和布局 (http://qt-project.org/doc/qt-5.1/qtwidgets/qscrollarea.html#details)

      I Think problems come from a single source :: Size Hints and Layouts (http://qt-project.org/doc/qt-5.1/qtwidgets/qscrollarea.html#details)

      第二個問題(縮小的widget)可以通過設(shè)置"c->setSizeConstraint(QLayout::SetMinimumSize);"來解決

      The second problem (shrinked widget) can be solved by setting "c->setSizeConstraint(QLayout::SetMinimumSize);"

      我目前正在尋找缺少滾動條的解決方案

      I am currently seeking a solution for the missing scrollbar

      這是顯示我的問題的代碼:

      here is a code showing my problem :

      <c++>
      #include <QWidget>
      #include <QScrollArea>
      #include <QVBoxLayout>
      #include <QSpinBox>
      
      class test2 : public QWidget
      {
              Q_OBJECT
          public:
              test2(QWidget *parent = 0) :QWidget(parent)
              {
                  b = new QScrollArea(this);
                  c = new QVBoxLayout;
      
                  for (int i = 0; i < 10; i++)
                  {
                      a.push_back(new QSpinBox());
                      c->addWidget(a[i]);
                  }
      
                  c->setSizeConstraint(QLayout::SetMinimumSize);
                  b->setLayout(c);
                  b->resize(200, 200);
              }
      
              ~test2()
              {
                  for (int i = 0; i < 10; i++)
                      delete a[i];
              }
      
          protected:
      
              QVector<QSpinBox*> a;
              QScrollArea* b;
              QVBoxLayout* c;
      
      };
      
      
      int main(int argc, char *argv[])
      {
          ///*
          QApplication app(argc, argv);
      
          test2 a;
      
          a.show();
      
          return app.exec();//*/
      }
      

      編輯 :: 在這里找到了解決方案:http://qt-project.org/forums/viewthread/295

      EDIT :: found a Solution here: http://qt-project.org/forums/viewthread/295

      如果你不想在這里閱讀大量無用的代碼,他做了什么 ::他扭曲了小部件內(nèi)的布局

      if you don't want to read huge amount of useless code here what he has done :: he warped the layout inside a widget

      解決方案::從ScrollBar繼承Object <- Widget <- Layout

      Solution :: inherit the Object from ScrollBar <- Widget <- Layout

      代替小部件 <- ScrollBar <- Layout

      instead of widget <- ScrollBar <- Layout

      但它的解決方法并不是真正的解決方案......我要嘗試我給出的例子.

      but it a work around not really a solution... I going to try on the example I gave.

      它有效.有沒有人有更好的解決方案??

      it works. Does anyone have a better solution ??

      推薦答案

      您不想在滾動區(qū)域本身上設(shè)置布局.您引用的答案源于對此的誤解.

      You do not want to set the layout on the scroll area itself. The answer you cite stems from misunderstanding this.

      1. 您需要在滾動區(qū)域內(nèi)有一個小部件,然后使用 QScrollArea::setWidget 將該小部件傳遞到該區(qū)域.如果滾動區(qū)域內(nèi)只有一個沒有子項的小部件,那么您不需要額外的布局.

      1. You need to have a widget within a scrollarea, and you pass that widget to the area using QScrollArea::setWidget. If all you have inside the scroll area is one widget with no children, then you don't need additional layout.

      您無需手動跟蹤布局擁有的小部件.刪除具有布局的小部件后,它們將自動刪除.

      You do not need to manually keep track of widgets that are owned by a layout. They'll be deleted automatically once the widget that has the layout is deleted.

      QScrollArea 小部件未布置在其封閉小部件中.

      The QScrollArea widget is not laid out within its enclosing widget.

      以下是如何操作的示例:

      Below is a working example of how to do it:

      // https://github.com/KubaO/stackoverflown/tree/master/questions/scroll-18703286
      #include <QScrollArea>
      #include <QVBoxLayout>
      #include <QSpinBox>
      #include <QApplication>
      
      class Window : public QWidget
      {
         QVBoxLayout m_layout{this};
         QScrollArea m_area;
         QWidget m_contents;
         QVBoxLayout m_contentsLayout{&m_contents};
         QSpinBox m_spinBoxes[10];
      public:
         Window(QWidget *parent = {}) : QWidget(parent) {
            m_layout.addWidget(&m_area);
            m_area.setWidget(&m_contents);
            for (auto & spinbox : m_spinBoxes)
               m_contentsLayout.addWidget(&spinbox);
            m_contentsLayout.setSizeConstraint(QLayout::SetMinimumSize);
         }
      };
      
      int main(int argc, char *argv[])
      {
         QApplication app(argc, argv);
         Window w;
         w.show();
         return app.exec();
      }
      

      這篇關(guān)于QScrollArea 缺少滾動條的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

      【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數(shù)據(jù)?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環(huán): for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環(huán)?)
Reusing thread in loop c++(在循環(huán) C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環(huán)形?)
主站蜘蛛池模板: 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 博医通医疗器械互联网供应链服务平台_博医通 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 「银杏树」银杏树行情价格_银杏树种植_山东程锦园林 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 加中寰球移民官网-美国移民公司,移民机构,移民中介,移民咨询,投资移民 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 驾驶人在线_专业学车门户网站 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 | 土壤养分检测仪_肥料养分检测仪_土壤水分检测仪-山东莱恩德仪器 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | 船用烟火信号弹-CCS防汛救生圈-船用救生抛绳器(海威救生设备) | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 单柱拉力机-橡胶冲片机-哑铃裁刀-江都轩宇试验机械厂 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 乐泰胶水_loctite_乐泰胶_汉高乐泰授权(中国)总代理-鑫华良供应链 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 立刷【微电签pos机】-嘉联支付立刷运营中心| 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 |