【问题标题】:How can I get the height of a QListWidgetItem in a QListWidget in PyQt?如何在 PyQt 的 QListWidget 中获取 QListWidgetItem 的高度?
【发布时间】:2011-12-17 02:46:47
【问题描述】:

实际上,如何在 PyQt 中提取一般 gui 元素的大小?

到目前为止,我只发现 sizeHint 在 PyQt 中提到了有关大小的任何内容。

谁能解释一下大小在 PyQt 中是如何工作的?

【问题讨论】:

    标签: size pyqt qlistwidget


    【解决方案1】:

    一般来说,无法保证小部件的准确大小,因为有很多不同的因素在起作用。根据使用的窗口管理器、当前的 GUI 样式、字体等,小部件的呈现方式会有所不同 - 每个平台都有自己的特点。

    为了更好地理解这一切,我建议你看看 Qt 自己对 window geometrywidgets and layoutslayout management 的概述。

    回答关于 QListWidgetItems 高度的具体问题:它们将具有 QListWidget 在布置其项目时计算的任何高度。这可能会考虑到项目的sizeHint,可以使用QListWidgetItem.setSizeHint 以编程方式设置。

    【讨论】:

    • 我同意,GUI 框架中的大小概念并不是一个简单的概念。但在我的示例中,这是一个非常简单的示例。我想将弹出窗口(设置了Qt.Popup 标志的QListWidget)调整为其行的确切大小。
    • @c00kiemonster。你的意思是像QCompleter?如果您在问题中添加了一些代码来演示您遇到的问题,这将有所帮助。我可以看到调整 width 是多么重要,但设置 height 似乎相当简单。
    • 是的设置高度是微不足道的,但获取项目高度比较棘手。浏览文档很长一段时间后,我找到了一种方法。它不漂亮,但我得到了我想要的结果:w.rectForIndex(w.indexFromItem(w.item(0))).height() wQListWidget
    • @c00kiemonster。抱歉,我的意思是设置列表小部件的总高度。很高兴您找到了解决方案。不完全确定您要做什么,但我认为您可能错过了一些更简单的事情:QAbstractItemView.sizeHintForRow。很抱歉没有早点指出这一点,但我从你原来的问题中假设你已经知道了。
    猜你喜欢
    • 2021-05-11
    • 2017-06-03
    • 2017-12-28
    • 2019-05-11
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    相关资源
    最近更新 更多