• 17196阅读
  • 9回复

如何获得放在Layout布局器中控件的位置和大小 [复制链接]

上一主题 下一主题
离线playlikun
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-19
我在QHBoxLayout中放入一个QLineEdit控件,和一个QLabel控件,debug时看见两控件的size和point都一样,其中point都是(0,0),如果想获取QHBoxLayout布局中控件实际的point和size,该怎么操作,谢谢
离线午小夜

只看该作者 1楼 发表于: 2010-01-19
geometry () ;
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线playlikun

只看该作者 2楼 发表于: 2010-01-19
试过了,不行,两个控件都是(640,480,0,0),晕
离线yangfanxing
只看该作者 3楼 发表于: 2010-01-19
x(),y(),左上角
width(),height()尺寸
总有的吧~~~多debug()几个看看~~~
geometry () ;好像对的啊。。。
PHPWind好恶心。。。不想看这种界面。。。
离线playlikun

只看该作者 4楼 发表于: 2010-01-19
谢谢楼上几位,搞定了
离线playlikun

只看该作者 5楼 发表于: 2010-01-20
再请教一个问题,我想在一个QLineEdit控件得到焦点时,在该控件上方,紧挨着显示一个dialog,里面就是一个Calendar控件,以提供给用户设定日期,设定完后,再把数据带到QLineEdit控件里面,QLineEdit在主界面上创建完后,我在创建dialog的时候,把lineEdit->pos(),lineEdit->size()传到自定义的dialog类里,以方便做大小,位置的控制,这个Calendar界面挨着edit控件,保证宽度要和edit一样:

dialog类里获得edit控件的数据后,做 setGeometry(pos.x(), pos.y()-this->size().height(), ret.width(), this->size().height()); 操作,发现dialog的宽度和edit一致了,但是y值不对,dialog挡住了edit控件,没有显示在其上方,pos.y() - this->size().height()有问题吗?
离线yangfanxing
只看该作者 6楼 发表于: 2010-01-20
setGeometry()
所以对应geometry->width()等等。。。
把this->size()等都改成this->geometry...
试试吧~~~。。。
PHPWind好恶心。。。不想看这种界面。。。
离线playlikun

只看该作者 7楼 发表于: 2010-01-20
刚试了一下,传参进来是lineEdit->geometry(),对应的形参是ret

dialog内部做:

setGeometry(ret.x(),ret.y()-this->geometry().height(),ret.width(),this->geometry().height());

宽度正好,位置还是遮住了edit控件,奇怪了,debug一看,this->geometry().height()只有30,默认对话框高度太小了
离线zc1239044730

只看该作者 8楼 发表于: 2017-01-16
楼主怎么搞定的啊,我如今也遇到了这个问题
离线liu54

只看该作者 9楼 发表于: 2017-05-09
我也遇到了。。。 你是怎么解决的呢?
快速回复
限100 字节
 
上一个 下一个