在QTextEdit中,如何检测用户何时仅将光标插入文本区域一次?

时间:2012-02-08 15:11:39

标签: c++ qt

我有QTextEdit和Text init,如:

write something here.... 

现在我想要只触发一次的启动信号,这样当用户将鼠标光标输入文本区域时,字符串将被删除,文本区域将准备好写入。 当小部件启动时,我只需要触发一次。
我只找到了:

connect( textEdit, SIGNAL( cursorPositionChanged( int para, int pos ) ), 
         <.....>,  SLOT( Position ( int para, int pos ) ) );

但我不知道如何触发它,或者它是正确的方法。

2 个答案:

答案 0 :(得分:2)

您可以在Position广告位disconnect建立该连接。这样那个插槽只会被触发一次。

另一种选择就是在接收信号的对象中保留一个布尔值,该信号指示在调用插槽时是否应该执行某些操作。

(你可能会发现自己想要“重新安装”那个插槽。再次调用connect或重置该布尔值,具体取决于你选择的选项。)

答案 1 :(得分:1)

如果您的QTextEdit小部件只是一行,您可能需要考虑使用QLineEdit小部件。然后你可以拨打setPlaceholderText("write something here.... ")来获得你想要的效果。 Click here了解更多信息。