使用 Qt Designer(生成的 GUI)创建自定义小部件并将它们提升为默认小部件

梅勒92

我正在尝试构建我的工作中使用的自定义 QT 小部件库存。我想坚持使用 PySide2 和 QT Designer 进行布局开发。我在使用设计器推广自定义小部件时也遇到了问题,它抛出:

"QFormBuilder was unable to create a custom widget of the 
class'MyCustomButton'; defaulting to base class 'QPushButton'."

我将 .ui 文件与 python 脚本保存在一起。

小部件推广是这样完成的:

Base class name: QPushButton
Promoted class name: MyCustomButton
Header file: qt_widget_app.h

qt_widget_app.py

import sys

from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton
from PySide2.QtCore import QFile, QObject
from PySide2.QtUiTools import QUiLoader


class MyCustomButton(QPushButton):

    def __init__(self, parent=None):
        super(MyCustomButton, self).__init__(parent)
        self.hidden_value = "Really Unique Text"
        self.clicked.connect(self.on_click)

    def on_click(self):
        self.setText("Custom Button Clicked!")


class ExampleForm(QObject):

    def __init__(self, ui_file, parent=None):
        super(ExampleForm, self).__init__(parent)
        ui_file = QFile(ui_file)
        ui_file.open(QFile.ReadOnly)
        loader = QUiLoader()
        self.window = loader.load(ui_file)
        ui_file.close()
        self.window.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    form = ExampleForm(ui_file='qt_widget_app.ui')
    sys.exit(app.exec_())

.py 和 .ui 文件可以在这里找到:https ://gofile.io/?c=BUOjQE

梅勒92

我想我问得太快了(在挖掘 PySide2 Docs 之前):

解决方法是添加:

loader.registerCustomWidget(MyCustomButton)

在 ExampleForm init 方法中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Qt Designer中使用PySide自定义小部件

来自分类Dev

Qt Designer自定义小部件:使用标志

来自分类Dev

使用 Qt GUI 编写 c++ dll,在自定义小部件中显示失败

来自分类Dev

使用Qt Designer在布局中居中放置小部件

来自分类Dev

使用UI设计文件并使用自定义构造函数QT创建自定义小部件

来自分类Dev

使用工厂创建QT提升的小部件

来自分类Dev

使用工厂创建QT提升的小部件

来自分类Dev

从Qt Designer调用小部件

来自分类Dev

在Qt Designer自定义小部件中将QList作为属性

来自分类Dev

我的自定义小部件未在Qt Creator / Qt Designer中显示,但是在执行程序时显示

来自分类Dev

访问在Qt Designer中添加的小部件

来自分类Dev

访问在Qt Designer中添加的小部件

来自分类Dev

Qt Designer(creator)小部件框,如小部件

来自分类Dev

编译使用旧版Qt Designer生成的软件

来自分类Dev

编译使用旧版Qt Designer生成的软件

来自分类Dev

使用 Qt Creator 中设计的自定义小部件将页面动态添加到 QStackedWidget

来自分类Dev

PyQt / Qt Designer - 无需插件即可提升小部件的额外参数

来自分类Dev

如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

来自分类Dev

使用一组现有的小部件创建自定义小部件?

来自分类Dev

如何使用Qt创建表格小部件

来自分类Dev

Qt:使用线程构造小部件

来自分类Dev

Qt:使用线程构造小部件

来自分类Dev

如何还原Qt Creator Designer小部件框?

来自分类Dev

在Python Qt中访问自定义小部件?

来自分类Dev

Qt 在 QTableView 中设置自定义小部件

来自分类Dev

Qt自定义小部件不显示子小部件

来自分类Dev

获取自定义 Qt QGraphicsView 以使用 Qt Designer 制作的表单显示

来自分类Dev

在为GNU Radio开发时,我应该使用WX GUI还是Qt GUI小部件?

来自分类Dev

Qt:访问由uitools / uiloader生成的小部件的信号/插槽

Related 相关文章

  1. 1

    在Qt Designer中使用PySide自定义小部件

  2. 2

    Qt Designer自定义小部件:使用标志

  3. 3

    使用 Qt GUI 编写 c++ dll,在自定义小部件中显示失败

  4. 4

    使用Qt Designer在布局中居中放置小部件

  5. 5

    使用UI设计文件并使用自定义构造函数QT创建自定义小部件

  6. 6

    使用工厂创建QT提升的小部件

  7. 7

    使用工厂创建QT提升的小部件

  8. 8

    从Qt Designer调用小部件

  9. 9

    在Qt Designer自定义小部件中将QList作为属性

  10. 10

    我的自定义小部件未在Qt Creator / Qt Designer中显示,但是在执行程序时显示

  11. 11

    访问在Qt Designer中添加的小部件

  12. 12

    访问在Qt Designer中添加的小部件

  13. 13

    Qt Designer(creator)小部件框,如小部件

  14. 14

    编译使用旧版Qt Designer生成的软件

  15. 15

    编译使用旧版Qt Designer生成的软件

  16. 16

    使用 Qt Creator 中设计的自定义小部件将页面动态添加到 QStackedWidget

  17. 17

    PyQt / Qt Designer - 无需插件即可提升小部件的额外参数

  18. 18

    如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

  19. 19

    使用一组现有的小部件创建自定义小部件?

  20. 20

    如何使用Qt创建表格小部件

  21. 21

    Qt:使用线程构造小部件

  22. 22

    Qt:使用线程构造小部件

  23. 23

    如何还原Qt Creator Designer小部件框?

  24. 24

    在Python Qt中访问自定义小部件?

  25. 25

    Qt 在 QTableView 中设置自定义小部件

  26. 26

    Qt自定义小部件不显示子小部件

  27. 27

    获取自定义 Qt QGraphicsView 以使用 Qt Designer 制作的表单显示

  28. 28

    在为GNU Radio开发时,我应该使用WX GUI还是Qt GUI小部件?

  29. 29

    Qt:访问由uitools / uiloader生成的小部件的信号/插槽

热门标签

归档