猿问

VS08编写QT界面使用QlineEdit的信号问题?

根据C++ GUI Programming with Qt 4一书的例子,在VS08自建的项目里,希望能够当QlineEdit的对象ui.lineEdit的内容不为空的时候,QpushButton的对象ui.pushButton->setEnabled(true);这里的connect函数应该怎么写?我可以实现当按另外一个键的时候如果ui.lineEdit不为空,将pushButton置为可用,但是不知道怎样直接判断。谢谢各位啊!!
因为看到QlineEdit自身有一些信号,于是我写了一个
connect(ui.lineEdit,SIGNAL(TextEdited(Qstring)),this,SLOT(setEnablebutton()));

其中的SLOT是
void dialogtest::setEnablebutton()
{
QString text=ui.lineEdit->text();
if(!text.isEmpty())
ui.pushButton->setEnabled(true);
}
问题肯定出在connect里面,但是这个信号不会用啊……

忽然笑
浏览 644回答 2
2回答

慕码人2483693

我用的是qt3的,两种方法首先:在构造函数里面先把按钮设置为假。1。qlineedit有个信号 void textChanged ( const QString & );connect(ui.lineEdit,SIGNAL(textChanged ( const QString & ),this,SLOT(setEnablebutton())); 槽里面在进行相关判断qt4中应该有类似的。2。 也可以用qtimeevent类,定义一个计数器,每隔几秒,看看text是否为空,然后进行相关判断。
随时随地看视频慕课网APP
我要回答