我刚刚接触QT两天,我想实现一个这样的功能:
QPlainTextEdit_1 和 QPlainTextEdit_2 两个文本框,
当 1 中有文字时,2 一旦输入,则清除 1 中的,且联动的把 2 中有的在 1 中也输出;
当 1 中没有文字,2 输入,则 1 照旧联动输入。
我试着修改了QT的example, 发现没有效果~ 大家帮忙看看 小弟先谢了
【这下面是我改的,似乎没办法联动,2一输入,1 就清空,而且1没办法联动输入】
package my.hello;
import com.trolltech.qt.core.Qt;
import com.trolltech.qt.gui.*;
public class Helloworld extends QWidget{
public static void main(String[] args) {
QApplication.initialize(args);
new Helloworld().show();
QApplication.exec();
}
public Helloworld(){
QPushButton button = new QPushButton(tr("Hello World"));
button.setFont(new QFont("Times",18,QFont.Weight.Bold.value()));
button.clicked.connect(QApplication.instance(),"quit()");
QGridLayout grid = new QGridLayout();
lcdRang old = null;
for(int row = 0; row < 2; row++) {
lcdRang rang = new lcdRang();
grid.addWidget(rang, 0, row);
if(old != null) {
rang.signal.connect(old, "setValue()");
}
old = rang;
}
QVBoxLayout box = new QVBoxLayout();
box.addWidget(button);
box.addLayout(grid);
this.setLayout(box);
this.setWindowTitle("many slider");
}
class lcdRang extends QWidget {
public String value;
public QPlainTextEdit plainTextEdit;
private final Signal0 signal = new Signal0();
public lcdRang() {
plainTextEdit = new QPlainTextEdit(this);
value = plainTextEdit.toPlainText();
plainTextEdit.textChanged.connect(signal);
}
public void setValue() {
plainTextEdit.setPlainText(value);
}
}
}