我有QTextEdit和Text init,如:
write something here....
现在我想要只触发一次的启动信号,当用户将鼠标光标输入文本区域时,字符串将被删除,文本区域将准备好写入 . 当窗口小部件启动时,我只需将它作为触发器一次 .
我才发现:
connect( textEdit, SIGNAL( cursorPositionChanged( int para, int pos ) ),
<.....>, SLOT( Position ( int para, int pos ) ) );
但我不知道如何触发它,或者它是正确的方法 .
2 回答
您可以在
Position
插槽中disconnect该连接 . 这样那个插槽只会被触发一次 .另一种选择是简单地在接收信号的对象中保留一个布尔值,该信号指示在调用插槽时它是否应该执行某些操作 .
(您可能会发现自己想要"rearm"那个插槽 . 再次调用
connect
,或重置该布尔值,具体取决于您选择的选项 . )如果您的
QTextEdit
窗口小部件只是一行,您可能需要考虑使用QLineEdit
窗口小部件 . 然后你可以调用setPlaceholderText("write something here.... ")
来获得你想要的效果 . Click here了解更多信息 .