Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.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++ 如何在QGraphicsView的左下角添加复选框?_C++_Qt_Qgraphicsview_Qcheckbox_Qstyle - Fatal编程技术网

C++ 如何在QGraphicsView的左下角添加复选框?

C++ 如何在QGraphicsView的左下角添加复选框?,c++,qt,qgraphicsview,qcheckbox,qstyle,C++,Qt,Qgraphicsview,Qcheckbox,Qstyle,我想在QGraphicsView的左角添加一个复选框 我试着直接在视图的painEvent中绘制它 void BhGraphicsView::paintEvent(QPaintEvent* event) { QGraphicsView::paintEvent(event); QStyleOptionButton opt; opt.state = QStyle::State_Active | QStyle::State_Enabled; opt.rect = QRe

我想在
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);

您可以在布局中将
QCheckBox
添加到
QGraphicsView

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

您可以在布局中将
QCheckBox
添加到
QGraphicsView

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

您可以在布局中将
QCheckBox
添加到
QGraphicsView

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

我想把复选框放在视图上,而不是在它下面。我的代码添加复选框,但它不会绘制复选框的文本,这将把复选框放在视图上。您还可以将上述代码放入自定义视图的构造函数中,并将
ui->myView
替换为
this
。我想将复选框放在视图上,而不是放在它下面。我的代码添加复选框,但它不会绘制复选框的文本,这将把复选框放在视图上。您还可以将上述代码放入自定义视图的构造函数中,并将
ui->myView
替换为
this
。我想将复选框放在视图上,而不是放在它下面。我的代码添加复选框,但它不会绘制复选框的文本,这将把复选框放在视图上。您还可以将上述代码放入自定义视图的构造函数中,并将
ui->myView
替换为
this
。我想将复选框放在视图上,而不是放在它下面。我的代码添加复选框,但它不会绘制复选框的文本,这将把复选框放在视图上。您还可以将上述代码放入自定义视图的构造函数中,并将
ui->myView
替换为
this