[英]Positioning QPushButtons via qss in QT
我有一组试图放置在qss文件中的五个按钮。 我在ui文件中设置的默认位置适用于我需要的一种布局。 但是,我想在其他主题中对按钮进行不同的分组。
我是qss文件的新手,并且一直在尝试,但是无法弄清楚是否有可能。 此处定义了“ left”属性: http : //doc.qt.io/archives/4.6/stylesheet.html#left-attr,但是当我尝试使用它时,什么也没有发生。
实际上,margin-left会移动按钮,但只能相对移动。 因此,如果按钮在ui文件中的位置之间有100的间距,则列表中第二个按钮的左边距将偏移100。
我究竟做错了什么? 可能是ui文件中的某些设置阻止了它的移动? 我已经“中断了布局”,这似乎无关紧要。 您会建议有很好的资源吗?
这是我的qss文件的示例。 左侧无效。
QPushButton#Button_1
{
min-width: 50;
max-width: 50;
min-height: 50;
max-height: 50;
position:absolute;
subcontrol-origin: border;
left:200;
}
编辑:我发现我可以通过从QPushButton派生一个类并制作一个“ GeomX” qproperty来更改按钮的位置。 这似乎可行,但是我现在遇到一个奇怪的问题。 首次加载应用程序时,它会绘制按钮在ui文件上的位置。 当我使用编码的“更改主题”选项并选择当前加载的主题时,它将按我的期望移动按钮。 但是,调整应用程序的大小会将它们转储回ui位置,重新启动也会将它们重新放置在ui位置。 ui文件中是否有设置可以更改以停止移动它们? 我需要解决加载顺序问题吗? 有可能解决这个问题吗? 到底是怎么回事?
一般来说,Qt中的样式表用于更改绘制小部件的方式,而不是更改其位置(添加填充/边距除外)。 如您所参考的文档所述,“ left”属性特定于子控件(即,控件内的组件,而不是控件本身)。
听起来您要完成的工作(根据主题更改布局)可能需要使用不同的方法。 可以通过以下几种方法来响应主题更改:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.