Qt中获取控件所在界面的位置,该怎么解决

Qt中获取控件所在界面的位置,该怎么解决,第1张

如何获得控件在对话框上的坐标是关键问题。编写了如下的测试小程序,目的是将两个picture控件中的点用直线连接起来,比较直观的是picture控件的四个角,所以程序中是将控件的拐角连接起来。首先在对话框上并排放置两个同样大小的picture控件,将他们的标识分别设成IDC_LEFT和IDC_RIGHT,然后添加两个编辑框用于显示picture控件的大小,给这两个编辑框添加相应的数据成员m_row和m_colume。添加一个按钮用于连接picture控件中的点,为这个按钮添加成员函数OnMatch() 。

首先我们在界面中添加一个QLabel控件。
QT界面怎么使控件随窗口大小变化一直居中显示
在控件上边下边分别添加一个竖直的d簧,选中这三个控件,然后点击竖直布局,如下图所示。布局结果如右图。
QT界面怎么使控件随窗口大小变化一直居中显示
QT界面怎么使控件随窗口大小变化一直居中显示
3
然后在上次布局的两侧添加水平的d簧,选中两个d簧和上次的布局,点击水平布局。布局效果如图
QT界面怎么使控件随窗口大小变化一直居中显示

不建议通过这种方式,这样会破坏类的封装性!建议在主窗口中定义接口函数,在接口函数中可以访问主窗口的任何控件。然后在子窗口中parentWidget()取得主窗口的指针,使用该指针调用主窗口的接口函数,从而访问主窗口的控件。

A background-image does not scale with the size of the widget To provide a "skin" or background that scales along with the widget size, one must use border-image Since the border-image property provides an alternate background, it is not required to specify a background-image when border-image is specified In the case, when both of them are specified, the border-image draws over the background-image
默认background-image 不会缩放以适应控件的大小。
如果要提供一个皮肤或背景以自动适应控件大小,
必须也只能用border-image属性。
因为border-image已经设置了可用的背景,
所以使用了border-image后,没必要再指定background-image。
如果同时指定了两个属性,那么将会使用border-image 绘制覆盖掉background-image。
例子中的
QMainWindow > QWidget {
background-color: gainsboro;
background-image: url(:/images/pagefoldpng);
background-position: top right;
background-repeat: no-repeat
}
把上面的改成:
QMainWindow > QWidget {
background-color: gainsboro;
border-image: url(:/images/pagefoldpng);
}
就能实现你要的效果了,自动将pagefoldpng拉伸填满整个背景。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13372545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存