Qt属性表中如何放入一个按钮?

ultraman007 2019-11-09 11:22:19
请问如何在Qt属性表中加入一个按钮?
...全文
509 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
HELoLool 2019-12-09
  • 打赏
  • 举报
回复
可以的。如果你是QTableWidget的话,你可以直接在你需要添加的这个item里面,写 QPushButton* btn = new QPushButton(); SetCellWidget->(btn);
疯魔症 2019-11-09
  • 打赏
  • 举报
回复
是这个效果不,这个用的QtTreePropertyBrowser,这个用起来有点复杂,贴一些代码,看对你有帮助没。另外完全可以用QTableView实现属性表功能,用Qt的MVC,这个也很复杂一两句说不清。
class DEVProperty : public QtTreePropertyBrowser
{
    Q_OBJECT
public:
    DEVProperty(QWidget *parent = 0);
    ~DEVProperty();

protected slots:
    void variantPropertyValueChanged(QtProperty *property, const QVariant &value);
    void enumPropertyValueChanged(QtProperty *property, int iSel);
    void btnPropertyValueChanged(QtProperty *property, const QString& ss);

private:
    // 基本类型属性
    QtVariantPropertyManager * m_pVarManager;
    QtVariantEditorFactory*m_pVarFactory;

    // 枚举值属性
    QtEnumPropertyManager * m_pEnumManger;
    QtEnumEditorFactory * m_pEnumFactory;

    // 按钮属性
    QtButtonPropertyManager * m_pBtnManger;
    QtButtonEditorFactory * m_pBtnFactory;

DEVProperty::DEVProperty(QWidget *parent):QtTreePropertyBrowser(parent),m_item(NULL),
    m_icdMan(NULL),
    m_ts(NULL),
    m_bEditICD(false)
{
    m_pVarManager = new QtVariantPropertyManager(this);
    m_pVarFactory = new QtVariantEditorFactory(this);
    this->setFactoryForManager(m_pVarManager,m_pVarFactory);
    connect(m_pVarManager,SIGNAL(valueChanged(QtProperty*,QVariant)),this,
            SLOT(variantPropertyValueChanged(QtProperty *, const QVariant &)));

    m_pEnumManger = new QtEnumPropertyManager(this);
    m_pEnumFactory = new QtEnumEditorFactory(this);
    this->setFactoryForManager(m_pEnumManger,m_pEnumFactory);
    connect(m_pEnumManger,SIGNAL(valueChanged(QtProperty*,int)),this,
            SLOT(enumPropertyValueChanged(QtProperty *, int)));

    m_pBtnManger = new QtButtonPropertyManager(this);
    m_pBtnFactory = new QtButtonEditorFactory(this);
    this->setFactoryForManager(m_pBtnManger,m_pBtnFactory);
    m_pBtnFactory->m_fun = &(this->OnConfig);
    m_pBtnFactory->m_pObj = this;
    connect(m_pBtnManger,SIGNAL(valueChanged(QtProperty*,const QString&)),this,
            SLOT(btnPropertyValueChanged(QtProperty*,const QString&)));
};

16,173

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧