范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

QtQSplitter任意拆分窗口

  Qt拆分窗口可以使用QSplitter,也可以使用比较容易使用布局控件来完成,本文章给出使用QSplitter分割窗口的例子。
  QSplitter 继承自QFrame,而QFrame又继承自QWidget,这点很重要。
  对于使用QSplitter拆分窗口:
  1)新建一个QSplitter,就意味着新建了一个QWidget
  2)不同的QSplitter对象通过指定父子关系来完成嵌套(划分窗口)
  3)QSplitter可以放置到你指定的任何窗口内
  例子1:将一个窗口拆分为左右两列,如下图所示:
  代码如下: int main(int argc, char *argv[]) { //例子1, qDebug("Mainframe start... "); QApplication app(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QSplitter *pSpliter = new QSplitter(Qt::Horizontal); //QTextEdit* pLeftEdt = new QTextEdit(pSpliter); //此注释指定父窗口,打开后,后面的pSpliter->addWidget(pLeftEdt); 可以注释掉 QTextEdit* pLeftEdt = new QTextEdit; pLeftEdt->setText(QObject::tr("左窗口")); //QTextEdit* pRightEdt = new QTextEdit(pSpliter); //此注释指定父窗口,打开后,后面的pSpliter->addWidget(pRightEdt); 可以注释掉 QTextEdit* pRightEdt = new QTextEdit; pRightEdt->setText(QObject::tr("右窗口")); pSpliter->addWidget(pLeftEdt); pSpliter->addWidget(pRightEdt); pSpliter->setStretchFactor(0, 1);//下面两句设置左右两列的宽度比为1:4 pSpliter->setStretchFactor(1, 4); pSpliter->setWindowTitle(QObject::tr("Split-Wnd Demo1")); pSpliter->show(); return app.exec(); }
  例子2:将一个窗口拆分为左右两列,右面再拆分为上下两列,如下图所示:
  代码如下: qDebug("Mainframe start... "); QApplication app(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QSplitter *pSpliter = new QSplitter(Qt::Horizontal); QTextEdit* pLeftEdt = new QTextEdit(pSpliter); pLeftEdt->setText(QObject::tr("左窗口")); QSplitter *pRightSpliter = new QSplitter(Qt::Vertical, pSpliter); QTextEdit* pRightTopEdt = new QTextEdit(pRightSpliter); pRightTopEdt->setText(QObject::tr("右上窗口")); QTextEdit* pRightBtmEdt = new QTextEdit(pRightSpliter); pRightBtmEdt->setText(QObject::tr("右下窗口")); pSpliter->setStretchFactor(0, 1); pSpliter->setStretchFactor(1, 4); pRightSpliter->setStretchFactor(0, 1);//右面窗口上下窗口高度比为1:4 pRightSpliter->setStretchFactor(1, 4); pSpliter->setWindowTitle(QObject::tr("Split-Wnd Demo2")); pSpliter->show(); return app.exec();
  例子3:将一个窗口拆分为左右两列,左面再拆分为上下两列,与例子2恰好相反,如下图所示:
  代码如下: qDebug("Mainframe start... "); QApplication app(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name())); QSplitter *pLeftSpliter = new QSplitter(Qt::Vertical); QTextEdit* pLeftTopEdt = new QTextEdit(pLeftSpliter); pLeftTopEdt->setText(QObject::tr("左上窗口")); QTextEdit* pLeftBtmEdt = new QTextEdit(pLeftSpliter); pLeftBtmEdt->setText(QObject::tr("左下窗口")); QSplitter *pSpliter = new QSplitter(Qt::Horizontal); QTextEdit* pRightEdt = new QTextEdit; pRightEdt->setText(QObject::tr("右窗口")); pSpliter->addWidget(pLeftSpliter); pSpliter->addWidget(pRightEdt); pSpliter->setStretchFactor(0, 4); pSpliter->setStretchFactor(1, 1);//左右宽度比为4:1 pLeftSpliter->setStretchFactor(0, 4);//左面窗口上下窗口高度比为4:1 pLeftSpliter->setStretchFactor(1, 1); pSpliter->setWindowTitle(QObject::tr("Split-Wnd Demo3")); pSpliter->show(); return app.exec();
  总结:QSplitter一次只能将一个窗口1分为2,横向竖向拆分由参数指定。要理清部件间的父子关系。有了这个思路,可以任意拆分窗口数量

又是电话门主角的亲戚,尤文还真是有情有义,但穆帅不会放弃欧战尤文踢罗马之前,手下人挑衅穆里尼奥,让白头发老头吃红停赛,尤文踢罗马时,小基恩吃了红牌,然后罗马踢萨索洛时,尤文立刻还以颜色,罗马球员库姆布拉和教练组成员,各吃一张红牌。在大家还在格雷格奥登胜过杜兰特徘徊NBA和CBA今开展第二次篮球生涯头条创作挑战赛相信不少NBA跟CBA的老球迷,或多或少还对格雷格奥登这名字有印象。没错,就是那位被称为NBA第一水货状元的格雷格奥登。选秀状元格雷格奥登格雷格奥登,在他还未遭受过膝2023年短道速滑世锦赛中国队1金1银收官人民网北京3月13日电(记者胡雪蓉)北京时间3月12日,2023年短道速滑世锦赛在韩国首尔落下帷幕。最后一个比赛日,中国队夺得男子5000米接力冠军和2000米混合团体接力亚军,以报名开启!四川天府新区兴隆湖迎来首场全国性赛事来源原创稿人民网成都3月14日电(王波)由国家体育总局水上运动管理中心中国滑水潜水摩托艇运动联合会成都市体育局四川天府新区管委会共同主办的2023兴隆湖杯绿水青山中国休闲运动挑战赛大满贯赛,多位世界冠军出局,国乒男女单打晋级形势不容乐观北京时间2023年3月14日,乒乓球新加坡大满贯赛将继续进行,男女单打16强已决出了八个席位。在13日的比赛中,多位世界冠军被淘汰出局,其中包括奥运冠军陈梦伊藤美诚以及世界冠军王艺点球绝杀10!U24国足又赢了,新帅上任3战2胜1平,冲击亚运金牌今年是中国男足各级国字号队伍全面出击的年份,包括成年国家队U24亚运队U22国奥队U20国青队U17国少队。现在U20国青队已经结束亚洲杯征程,连续18年无缘世青赛,另外一支男足队皮特森成同曦毒瘤,刷数据争大合同?一人干四人看,林葳深受其害悄然间,联赛第三十四轮比赛已经落下帷幕。在此前结束的比赛中,同曦队客场不敌青岛,连胜戛然而止。这场比赛,前三节,两队还打得有来有回,比分非常焦灼。甚至于在比赛还剩下4分钟时,同曦也5年1。92亿!骑士这钱花得值当米切尔前三节仅得13分的情况下,正是加兰的25分,让骑士8189在比分上紧紧咬住黄蜂,这才有了米切尔第四节单节10分率队完成逆转的戏码上演。骑士逆转黄蜂,在感叹米切尔末节表现的同他的睡眠习惯独特,小妾们无法忍受,三姨太装疯逃脱张勋一代辫帅的传奇人生作为清末期的一位军阀,张勋的名字对于喜欢近现代史的朋友来说一定不会陌生。张勋历任云南甘肃江南提督,备受朝廷赏识,因此张勋对清朝也是忠心不二。当清朝覆灭后,为了霸气,钱天一力克伊藤美诚!无奈,陈梦王艺迪爆冷全部出局!在刚刚结束的WTT新加坡大满贯赛的女单赛场,32强的对决中,中国女乒有喜有忧!喜的是,钱天一打得坚决霸气,力克劲敌伊藤美诚晋级下一轮。忧的是,核心主力陈梦王艺迪表现让人失望,分别输这样吃春笋才不会伤肠胃视觉中国供图蓼茸蒿笋试春盘,人间有味是清欢。苏轼这样褒奖餐桌上的春笋。不过,对于春笋,也有人表示担忧不食嘴馋,食之胃寒。鲜美春笋真的会伤肠胃吗?怎样吃才能避免损害健康?所含草酸对胃
为咖啡而生的保温杯升级回归,荣获2项国际大奖丨种草机在有着咖啡市之称的上海。打开地图搜索,办公楼附近1公里有10家咖啡店,还不包含便利店自动售卖机。当喝咖啡成为了像洗脸刷牙一样平常的事,拥有一个专用咖啡杯就变得很重要。因为,自带杯减我90后独臂女孩,考上211被20多人表白,单手掌控的人生同样精彩这是我们讲述的第1598位真人故事我叫小霖,90后女孩。9岁那年,一场意外的事故,夺去了我的整个右臂,彼时的我,学习钢琴5年,还在梦想长大有机会做警察。那场事故之后,我妈妈几近昏厥鲨鱼哥人生迷茫,低谷期最该明白的扎心真话大家好,我是鲨鱼哥!这个世界只有一种情况,可以让你从低谷中爬出来,那就是你要看透你这一段黑暗的经历。人生低谷的真相和本质,人生的成长和破局,一定是痛苦加反思,痛苦就是你所经历的这一商鞅奔秦2月财经新势力商鞅,范睢,张仪先后奔秦,东方诸候忌之,会于齐。燕王曰人养于东而入于西,何也?蔺相如起而对曰养而不教,教而不用,用而不尽,尽而不奖,奖而不慨,是故人才出于东方而入于西遵义新蒲虾子胡氏有名宅历史开讲胡氏民宅入户院门经虾子经开区往新舟机场方向走,穿过红乐村牌坊,可看见一个人工打造的湖泊百灵湖(也叫落石湖)。湖的北岸,静卧着一座别致而优雅的庄园。庄园依山傍水,风景钟灵毓秀童心飞扬快乐起航春节已过去一段时间,孩子们逐渐回归了学校,开始了新一轮的学习,为丰富残疾儿童康复机构的课外生活,加强残疾儿童的想象力与动手能力,湾里管理局社会事务办组织助残志愿者前往湾里可爱宝贝语法国举重队来五指山训练基地冬训备战巴黎奥运会海南日报记者从海南体育职业技术学院获悉,近日,法国举重队来到海南五指山训练基地冬训,备战巴黎奥运会。这也是最近几年首支来琼冬训的外国举重队。法国举重队队员在训练中海南五指山训练基地哈登轻松砍下1912,下一场超越名宿艾佛森2月16日NBA常规赛,76人主场118112战胜骑士的比赛中,詹姆斯哈登11投5中,三分7中3,罚球6中6得到19分,另有4篮板12助攻1抢断1盖帽的数据。本场之后,哈登得分达到118112,76人力克东部黑马!哈登轻松两双,替补奇兵12中6砍16分2月16日上午,76人主场对阵骑士,东部强强对决上演。76人拥有哈登恩比德等球星,骑士则是坐拥米切尔,这也是本赛季彻底蜕变的直接原因。此役首节,76人快速进入状态,哈登频频送出助攻避免重复造轮子!7个Python库让开发更轻松转载说明原创不易,未经授权,谢绝任何形式的转载7个Python库提升开发效率,让你的项目更优秀当有库可以完成你需要的功能,为什么还要自己写代码呢?库是开发者最好的朋友和救星。在我看在家就能上的真人外教,体验真实美国幼儿园课堂,轻松省上万块!太惊喜啦,年妈挖到了宝藏!真人外教CircleTime教学视频,让孩子体验真实的美国幼儿园课堂,轻松省上万块外教费!在欧美的幼儿园里,每天都会有circletime圆圈时间,老师和