• 4693阅读
  • 3回复

一个有关文本框的问题 [复制链接]

上一主题 下一主题
离线mentago
 

只看楼主 正序阅读 楼主  发表于: 2009-03-07
我刚刚接触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);
        }
    }
}
离线mentago

只看该作者 3楼 发表于: 2009-03-10
我就是这么想的啊 可是我的代码上面有什么问题吗?
离线yleesun

只看该作者 2楼 发表于: 2009-03-09
在2中输入的时候发送一个消息,1 接收这个消息,在1这个消息响应中先清空,在把2的内容输出、
离线mentago

只看该作者 1楼 发表于: 2009-03-09
没有人回答吗?
快速回复
限100 字节
 
上一个 下一个