gpt4 book ai didi

python - 将 QgsMessageBar 与 ui 文件合并?

转载 作者:行者123 更新时间:2023-12-01 05:20:31 25 4
gpt4 key购买 nike

我尝试将 QgsMessageBar 与 ma ui 文件合并

from ui_file import Ui_File
class MyClass(QDialog):
def __init__(self):
QDialog.__init__(self)
self.bar = QgsMessageBar()
self.ui = Ui_File()
self.ui.setupUi(self)
self.ui.pushButton_2.clicked.connect(self.run)
def run(self):
self.bar.pushMessage("Hello", "World", level=QgsMessageBar.INFO)

当我将“bar”更改为“ui”时,出现错误: “Ui_File”对象没有属性“pushMessage”

ui 文件中缺少某些内容?如何解决?

最佳答案

示例中的代码看起来不错,但您需要将消息栏添加到对话框的布局中。

如何执行此操作取决于对话框的布局类型以及您希望消息栏出现的位置。如果布局是 QVBoxLayout,并且您希望消息栏位于对话框底部,只需执行以下操作:

    self.layout().addWidget(self.bar)

并将其放在对话框的顶部,您可以这样做:

    self.layout().insertWidget(0, self.bar)

但是,如果布局是 QHBoxLayoutQGridLayout,您可能需要更改 Qt Designer 中的内容才能正常工作。特别是,QGridLayout 没有插入小部件的方法,因此如果您希望消息栏位于对话框顶部,则必须为消息栏留出空间。您可能还需要确保消息栏跨越对话框的整个宽度。请参阅 QGridLayout.addWidget 的文档了解更多详情。

对于 QHBoxLayout 来说要简单得多 - 只需将现有布局放入 QVBoxLayout 布局中,然后按上述方式进行即可。

关于python - 将 QgsMessageBar 与 ui 文件合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22489425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com