我希望实现一个功能,在your input中输入的字符能够在Candidates中即时显现出来,一开始想创建一个新的线程,但是新的线程无法调用主线程的GUI(不可重入),所以考虑信号槽机制,代码如下:
代码: 全选
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
Ui::MainWindow* getUi();
void sendcont();
void echocont();
~MainWindow();
signals:
void textChange(const QString & name)const;
protected:
bool eventFilter(QObject *obj,QEvent *even);
private:
Ui::MainWindow *ui;
QTextEdit *a;
QLineEdit *b;
QString str;
QString str1;
};
代码: 全选
void MainWindow::sendcont()
{
str1 = str;
emit textChange(str1);
}
void MainWindow::echocont()
{
ui->plainTextEdit->setPlainText(str1);
}
代码: 全选
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QObject::connect(&w,&MainWindow::textChange,&w,&MainWindow::echocont);
w.show();
return a.exec();
}
谢谢。 [/size]