• 7010阅读
  • 6回复

请问如何等比例地改变窗口的长/宽度? [复制链接]

上一主题 下一主题
离线guoyuke02
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-20
使用鼠标拖动改变一个窗口的大小时,请问如何等比例地改变其长度和宽度,即窗口的长宽比恒定?
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-20
自己处理 resize 事件?
离线guoyuke02
只看该作者 2楼 发表于: 2009-09-20
引用第1楼dbzhang800于2009-09-20 20:52发表的  :
自己处理 resize 事件?

在resizeEvent中调用resize()吗?
离线dbzhang800

只看该作者 3楼 发表于: 2009-09-20
在resizeEvent中调用resize() 应该不行
离线guoyuke02
只看该作者 4楼 发表于: 2009-09-20
引用第3楼dbzhang800于2009-09-20 21:03发表的  :
在resizeEvent中调用resize() 应该不行

是不行,但是不知道用什么行
离线wd007

只看该作者 5楼 发表于: 2009-09-20
设置一下布局,设置一下大小策略可以做到吧,即setSizePolicy()。
比如要设置长宽比为2:1,代码如下:
QSizePolicy  policy = textEdit->sizePolicy();
policy.setHorizontalStretch(2);
policy.setVerticalStretch(1);
textEdit->setSizePolicy(policy);

//还有一些大小策略的设置,请查看文档





还有一个setScaledContents(true )在文本框窗口部件和lineEdit部件内有内容时,很有用。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线guoyuke02
只看该作者 6楼 发表于: 2009-09-21
引用第5楼wd007于2009-09-20 21:52发表的  :
设置一下布局,设置一下大小策略可以做到吧,即setSizePolicy()。
比如要设置长宽比为2:1,代码如下:
QSizePolicy  policy = textEdit->sizePolicy();
policy.setHorizontalStretch(2);
policy.setVerticalStretch(1);
.......

按照您的方法试了一下,无论是把代码插到构造函数中还是插到paintevent()中都不起作用
快速回复
限100 字节
 
上一个 下一个