我写了这段代码,但是当我在TextEdit里面改变文本时什么也没有发生。我做错了什么 ?我一直在使用这个 - >更新()和小窗口>更新()函数的尝试,但没有奏效...QTextEdit中的textChange()
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTextEdit>
#include <QPushButton>
#include <QWidget>
#include <QVBoxLayout>
class MainWindow : public QMainWindow
{
Q_OBJECT
QTextEdit *edit;
QPushButton *pb;
QWidget *widget;
QVBoxLayout *layout;
void changeCaption();
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
};
#endif // MAINWINDOW_H
mainwindow.cpp:
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
edit = new QTextEdit;
pb = new QPushButton("HEHE");
widget = new QWidget;
layout = new QVBoxLayout(widget);
layout->addWidget(edit);
layout->addWidget(pb);
this->setCentralWidget(widget);
connect(edit, SIGNAL(textChanged()), this, SLOT(chngeCaption));
}
MainWindow::~MainWindow()
{
}
void MainWindow::changeCaption(){
pb->setText("CHANGED");
}
你必须在'SIGNAL'宏参数中写入信号的确切签名('textChanged(const QString&)'),在'SLOT'中写入错字并写入'chngeCaption'而不是'changeCaption' – Predelnik 2015-04-06 09:41:43