首页 文章

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

提问于
浏览
0

我有QTextEdit和Text init,如:

write something here....

现在我想要只触发一次的启动信号,当用户将鼠标光标输入文本区域时,字符串将被删除,文本区域将准备好写入 . 当窗口小部件启动时,我只需将它作为触发器一次 .
我才发现:

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

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

2 回答

  • 1

    您可以在 Position 插槽中disconnect该连接 . 这样那个插槽只会被触发一次 .

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

    (您可能会发现自己想要"rearm"那个插槽 . 再次调用 connect ,或重置该布尔值,具体取决于您选择的选项 . )

  • 2

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

相关问题