选中该复选框后,以下代码将不起作用。无论复选框是否选中,它都会跳转到"else“语句。
void MainWindow::runButtonClicked()
{
if (MainWindow::betAllRed->isChecked()==true){
red.didBet=true;
qDebug()<<"bet Red true";
} else{
qDebug()<<"red not checked";
}
}这里有什么明显的错误吗?或者是其他地方的问题?是否需要连接插槽才能获得检查状态?
发布于 2012-12-30 17:41:50
问题出在您访问betAllRed复选框的方式。如果你正在使用设计器,你可以使用Ui来访问它;
if(ui->betAllRed->isChecked())如果您使用的是自己的代码:
QComboBox *betAllRed = new QComboBox(this);只需使用以下命令访问它:
if(this->betAllRed->isChecked())发布于 2012-12-30 18:26:50
我怀疑您做错了的是,您实际上有两个betAllRed字段:您已经创建并初始化了QCheckBox* MainWindow::betAllRed,然后在MainWindow::ui中也有一个复选框(可能具有相同的名称,如果您在Designer中将其重命名,否则使用Designer创建的默认名称)。
如果是这种情况,请删除您自己的betAllRed,然后修复代码以使用ui->betAllRed访问该复选框(如果该复选框现在具有默认名称,还可以在Designer中重命名该复选框)。
然后是关于你的这一行的代码风格说明:
if (MainWindow::betAllRed->isChecked()==true){这一行就等于这一行,它会更短,更清晰:
if (betAllRed->isChecked()) {https://stackoverflow.com/questions/14089389
复制相似问题