QT关于在槽函数中修改组件属性导致程序崩溃求解答
Widget::Widget(QWidget*parent):QWidget(parent),ui(newUi::Widget){ui->setupUi(this);QL...
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); QLabel *test = new QLabel(); QPushButton *test_button = new QPushButton("test"); QHBoxLayout *test_layout = new QHBoxLayout; test_layout->addWidget(test); test_layout->addWidget(test_button); setLayout(test_layout); test->setText("test"); connect(test_button,SIGNAL(clicked()),this,SLOT(test_button_clicked()));}void Widget::test_button_clicked(){ test->setText("test _ fianl");}点击按钮进入槽函数时就会崩溃 工程全新 就在h文件里定义了按钮 label和槽函数 以上为cpp文件修改主体 编译可以正常通过 一旦点击按钮就程序异常退出 求大神解答
展开
1个回答
展开全部
如果你能编译通过,那说明你在头文件中一定有这样的定义:
QLabel *test;
否则test_button_clicked()中会报错, test不存在
而你在构造函数中又这样定义:
QLabel *test = new QLabel();
其实质是新建了一个QLable,并不是头文件中声明的test,头文件中的 test并没有初始化,还是空值,所以在调用槽函数test_button_clicked()因为test为空,导致程序崩溃
解决办法:
把构造函数中的
QLabel *test = new QLabel();
改为:
test = new QLabel();
这也应该是你的本意
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询