我想在QGraphicsView的左上角添加一个复选框。

我尝试直接在视图的painEvent中绘画它。

void BhGraphicsView::paintEvent(QPaintEvent* event)
{
    QGraphicsView::paintEvent(event);
    QStyleOptionButton opt;
    opt.state = QStyle::State_Active | QStyle::State_Enabled;
    opt.rect = QRect(x,y,300,300);
    QPainter painter(viewport());
    //histogram_cbox_ is a QCheckBox
    histogram_cbox_->style()->drawControl(QStyle::CE_CheckBox, &opt, &painter);
  // ....
 }


我没有找到QStyleOptionCheckBox,所以我使用了QStyleOptionButton

但是问题是它没有显示QCheckbox的文本。

如何在QGraphicsView上绘制可点击的复选框?

最佳答案

您可以在布局中的QCheckBox中添加QGraphicsView

QCheckBox * checkBox = new QCheckBox();
QGridLayout * layout = new QGridLayout(ui->myView);
layout->addWidget(checkBox,0,0,0,0,Qt::AlignBottom | Qt::AlignLeft);

10-07 16:31