Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将自定义切换按钮添加到自定义项代理?_C++_Qt - Fatal编程技术网

C++ 如何将自定义切换按钮添加到自定义项代理?

C++ 如何将自定义切换按钮添加到自定义项代理?,c++,qt,C++,Qt,我有一个自定义项委托,我想绘制/附加一个自定义切换按钮(见图),理想情况下,用自定义切换按钮替换委托上的按钮。这两个类(自定义项委托和自定义切换按钮)本身都可以正常工作,但是,如何将切换按钮附加到委托是一个相当大的挑战。任何建议都会很有帮助 这是绘制按钮的代码部分: void CustomDelegate::drawButton(QStyleOptionButton& opt, const QPoint& p, QPainter* painter) const { QSt

我有一个自定义项委托,我想绘制/附加一个自定义切换按钮(见图),理想情况下,用自定义切换按钮替换委托上的按钮。这两个类(自定义项委托和自定义切换按钮)本身都可以正常工作,但是,如何将切换按钮附加到委托是一个相当大的挑战。任何建议都会很有帮助

这是绘制按钮的代码部分:

void CustomDelegate::drawButton(QStyleOptionButton& opt, const QPoint& p, QPainter* painter) const
{
    QStyle* style = QApplication::style();
    opt.text = "button";
    if(style){
        style->drawControl(QStyle::CE_PushButton, &opt, painter);
    opt.state &= ~QStyle::State_Sunken;
    opt.rect.translate(opt.rect.width() + offset_button, 0);
    }
}

您可以通过使用单元格的自定义编辑器并在其上打开持久编辑器来实现这一点

在项目委托中,需要重新实现和方法来创建自定义切换按钮,根据模型数据设置其状态,并在更改时将其状态写回模型

使用此方法,您不需要在代理中自己绘制按钮,因为它不仅是一个显示的图像,而且是一个功能齐全的按钮

这是一个应该让你开始的例子