Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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++ 检查QStackedWidget的QVboxLayout中的QCheckBox_C++_Qt_Qcheckbox - Fatal编程技术网

C++ 检查QStackedWidget的QVboxLayout中的QCheckBox

C++ 检查QStackedWidget的QVboxLayout中的QCheckBox,c++,qt,qcheckbox,C++,Qt,Qcheckbox,我有一个QstackedWidget,我添加了QHboxLayout和QVBoxLayout,在我的垂直布局中我添加了3个QCheckBox,我添加了这个布局,左右两侧各有一个间隔,然后我在水平布局中推这个新布局,顶部和底部各有两个间隔,现在我想检查这个QCheckBox是否被选中,但我不知道怎么检查这个。 这是我的密码: QVBoxLayout *center = new QVBoxLayout(); QVBoxLayout *main = new QVBoxLayout(); QHB

我有一个QstackedWidget,我添加了QHboxLayout和QVBoxLayout,在我的垂直布局中我添加了3个QCheckBox,我添加了这个布局,左右两侧各有一个间隔,然后我在水平布局中推这个新布局,顶部和底部各有两个间隔,现在我想检查这个QCheckBox是否被选中,但我不知道怎么检查这个。 这是我的密码:

QVBoxLayout *center = new QVBoxLayout();
QVBoxLayout *main = new QVBoxLayout();
    QHBoxLayout *middle = new QHBoxLayout();

    QSpacerItem *topspacer = new QSpacerItem(14, 24, QSizePolicy::Fixed, QSizePolicy::Fixed);
    QSpacerItem *buttom = new QSpacerItem(4, 4, QSizePolicy::Expanding, QSizePolicy::Expanding);
    QSpacerItem *left = new QSpacerItem(4, 4, QSizePolicy::Expanding, QSizePolicy::Expanding);
    QSpacerItem *right = new QSpacerItem(4, 4, QSizePolicy::Expanding, QSizePolicy::Expanding);
    middle->addItem(left);
    middle->addLayout(center);
    middle->addItem(right);
    center->addWidget(checkBoxEvent(QString::fromStdString("Analyze events")));
    center->addWidget(checkBoxEvent(QString::fromStdString("Edit Tracks")));
    center->addWidget(checkBoxEvent(QString::fromStdString("Analyze players")));

main->addItem(topspacer);
    main->addLayout(middle);
    main->addItem(buttom);
Qwidget *m_page = new Qwidget();
    m_page->setLayout(main);
    m_stackedWidget->addWidget(m_page);
我尝试使用此代码访问元素,但出现了分段错误:

 for(int i = 0; i < m_stackedWidget->widget(2)->layout()->count(); i++) 
   if(dynamic_cast<QPushButton*>( m_stackedWidget->widget(2)->layout()->itemAt(i) )->isChecked())
for(inti=0;iwidget(2)->layout()->count();i++)
如果(动态转换(m_stackedWidget->widget(2)->layout()->itemAt(i))->isChecked())

这些项目被添加到m_stackedWidget[1]

为什么不存储指向所有复选框的指针并直接访问它们?为什么要强制转换为
QPushButton
,而不是强制转换为
QCheckBox
?为什么…我不存储这个指针,因为我有太多的类成员,我不想将这个复选框添加到它们中,我犯了错误,我强制转换到QCheckBox,但我从Qt的类引用
void QBoxLayout::addWidget(QWidget*widget,int-stretch=0,Qt::Alignment=0)中再次出现分段错误
-您的
checkBoxEvent
方法是什么@vahanchoԲ㗑րեւ我认为最简单的方法是存储指针,感谢您的帮助