关于layout()->setSizeConstraint(QLayout::SetFixedSize)的问题

关于layout()->setSizeConstraint(QLayout::SetFixedSize)的问题
只看楼主
收藏
回复


马卢达times
不能逃避5




#include "sortdialog.h" 
#include<QtGui> 
SortDialog::SortDialog(QWidget *parent) 
: QDialog(parent) 
{ 
setupUi(this); 


secondaryGroupBox->hide(); 
tertiaryGroupBox->hide(); 
layout()->setSizeConstraint(QLayout::SetFixedSize); //就是这句无法通过


setColumnRange('A','Z'); 
} 


void SortDialog::setColumnRange(QChar first,QChar last) 
{ 
primaryColumnCombo->clear(); 
secondaryColumnCombo->clear(); 
tertiaryColumnCombo->clear(); 


secondaryColumnCombo->addItem(tr("None")); 
tertiaryColumnCombo->addItem(tr("None")); 
primaryColumnCombo->setMinimumSize(secondaryColumnCombo->sizeHint()); 


QChar ch=first; 
while(ch<=last){ 
primaryColumnCombo->addItem(QString(ch)); 
secondaryColumnCombo->addItem(QString(ch)); 
tertiaryColumnCombo->addItem(QString(ch)); 
ch=ch.unicode()+1; 
} 
}




0
回复
1楼2012-06-05 11:20举报 |


马卢达times
不能逃避5




回复 2楼2012-06-05 11:21举报 |


马卢达times
不能逃避5
代码是没问题的 检查了很多遍 关于layout的问题在网上也有很多人提出 这是怎么回事呢?怎么会在底层出问题呢?


回复 3楼2012-06-05 11:22举报 |


riyue1108
不能逃避6
目测没有可用的布局,layout()返回的是空指针


回复 4楼2012-06-05 11:23举报 |


马卢达times
不能逃避5
引用 riyue1108 (4楼)
目测没有可用的布局,layout()返回的是空指针
没有可用的布局?我都布局好了呀 都在qt设计上的栅格布局布局的 到底怎么回事?


回复 5楼2012-06-05 11:27举报 |


马卢达times
不能逃避5
没人知道吗


回复 6楼2012-06-05 12:45举报 |


yanglutqs
不能逃避5
建议用栅格布局 QGridLayout 具体看自带范例


回复 7楼2012-06-06 15:54举报 |


Fiona_ce
您这个问题解决了吗?求指导




回复 8楼2012-10-16 17:07举报 |


hohos
不能逃避6
点击SortDialog ui主窗体,设立布局。。。。
应该就可以了。。。。


可先拿书中示例源代码中的UI替代你自己的UI,再看看效果。


回复 9楼2012-10-22 02:49举报 |


hohos
不能逃避6
designer我这个月才用
刚用时感觉不如手写界面爽快明了


后来请教了下达人csslayer和nihui,记录和总结如下


昨日在IRC ,就几个问题询问了nihui老大和csslayer老大,两位老大给予了很大的帮助。。(虽然他们应该都比我小-___-) 与QT有关的,是Designer设计师里对于Layout的“错乱” 问题:因为添加这个,那个layout,常导致布局错乱。 讨论: [nihui] 可以布局掌控的
[vic__] 布局 只是管理空间排列的方式的把
[nihui] 参考优先级 fixed-geometry > expanding > preferred > minimum > layoutstretch > layout [nihui] hohos: 设计师的思路和手写是相反的 [nihui] 手写的时候是先创建设定好 layout,然后往 layout 加东西 [nihui] 设计师是先创建好东西,然后ctrl+鼠标选中这些东西,用某个 layout 排列
[csslayer]: 嗯,建好layout再改有时候很难做。如果想换layout或者添加,一般还是先break掉layout,然后再重新组合 




之前csslayer老大也提到了多建立(适度)layout的解决方法,但我没有足够的功力去领悟 或者说 没有总结到。 最后的解决方法: 全局,容纳其他Widget的容器,如GroupBox,tabWidget,在相关组件建立好后,都建立一个layout。。。 这只是现在我能做到的较好的解决方法了,应该还有些地方需要注意, 如果你有更好的办法,留言给我。








另外还有就是初始化部件时稍变动到差不多合适的大小,再由小及大进行组合
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值