关于layout()->setSizeConstraint(QLayout::SetFixedSize)的问题
只看楼主
收藏
回复
马卢达times
不能逃避5
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。。。 这只是现在我能做到的较好的解决方法了,应该还有些地方需要注意, 如果你有更好的办法,留言给我。
另外还有就是初始化部件时稍变动到差不多合适的大小,再由小及大进行组合
只看楼主
收藏
回复
马卢达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。。。 这只是现在我能做到的较好的解决方法了,应该还有些地方需要注意, 如果你有更好的办法,留言给我。
另外还有就是初始化部件时稍变动到差不多合适的大小,再由小及大进行组合