如何在 Qt 中以编程方式制作一条水平线
我想弄清楚如何在 Qt 中制作一条水平线。这很容易在设计器中创建,但我想以编程方式创建一个。我已经做了一些谷歌搜索并查看了 ui 文件中的 xml,但无法弄清楚任何内容。
ui 文件中的 xml 如下所示:
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>150</x>
<y>110</y>
<width>118</width>
<height>3</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
I'm trying to figure out how to make a horizontal line in Qt. This is easy to create in Designer but I want to create one programmatically. I've done some googleing and looked at the xml in a ui file but haven't been able to figure anything out.
This is what the xml from the ui file looks like:
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>150</x>
<y>110</y>
<width>118</width>
<height>3</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
水平线或垂直线只是一个设置了一些属性的
QFrame
。在 C++ 中,生成的用于创建一行的代码如下所示:A horizontal or vertical line is just a
QFrame
with some properties set. In C++, the code that is generated to create a line looks like this:这是使用 PySide 的另一个解决方案:
然后可以用作(例如):
其结果如下:
Here's another solution using PySide:
Which can then be used as (for example):
Which results in the following:
这是一个使用标准 PyQt5 的解决方案,我从 shoosh 的答案中得出:
如果你想添加它(例如添加到网格中):
请确保永远不要在分隔符上使用对齐方式,否则它可能会把你搞砸,因为它们不会正确缩放。
这里仅展示如何将其添加到您的窗口:
Here is a solution using standard PyQt5 that I derived from shoosh's answer:
And if you want to add it (for example to a grid):
Make sure to never use alignment on the separators, otherwise it will probably screw you over because they will not scale properly.
Just to show everything here is how to add it to your window:
你可以用这个
You can use this