我寫了這段代碼,但是當我在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