gpt4 book ai didi

c++ - setChecked() 在类里面不起作用

转载 作者:行者123 更新时间:2023-11-28 00:13:12 29 4
gpt4 key购买 nike

我在 Qt 5 中制作了一个小测试程序,并尝试实现一个复选框类,默认情况下复选框被选中。但是,每当我运行该程序时,似乎都没有选中该复选框。以下是代码:

复选框.h:

    #ifndef CHECKBOX
#define CHECKBOX

#include <QCheckBox>
#include <QWidget>



class checkbox : public QCheckBox
{
public:

checkbox(QWidget *parent = 0) : QCheckBox(parent)
{
QCheckBox *cBox = new QCheckBox;
cBox->setChecked(true);
}
};

#endif // CHECKBOX

主要.cpp:

    #include "mainwindow.h"
#include <QApplication>
#include <QAction>
#include <QtWidgets>
#include <checkbox.h>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget *window = new QWidget;

window->setWindowTitle("test");
checkbox *box = new checkbox;

QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(box);

window->setLayout(mainLayout);
window->show();

return a.exec();
}

有趣的是,如果我在 main 中调用带有框的 setChecked,它会输出一个选中的框。

非常感谢任何帮助

最佳答案

你正在做这个......

QCheckBox *cBox = new QCheckBox;
cBox->setChecked(true);

...创建第二个动态分配的 QCheckBox - 与嵌入在 checkbox 中的基本对象不同 - 然后泄漏该对象/内存。您应该通过调用继承的成员函数来简单地检查嵌入的基类 QCheckBox:

checkbox(QWidget* parent = nullptr)
: QCheckBox(parent)
{
setChecked(true);
}

关于c++ - setChecked() 在类里面不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31954510/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com