qt:textedit 聚焦与光标问题

时间:2022-09-28 18:31:17
    问个问题,大家有没有遇到过这个问题,在用setFocus来切换textedit文本框的聚焦时,有没有出现过两个文本框都有光标闪烁啊,,,很奇葩,应该聚焦在哪个文本框哪个才闪烁啊。。
qt:textedit 聚焦与光标问题
怎么解决呢?

7 个解决方案

#1


焦点问题是比较奇葩,有时候不明不白,焦点就会跑到一个你意想不到的控件。这个地方不需要用setFocus吧,你聚焦的时候。按理,它会自动进行焦点切换的。你用setFocus是不是有什么其它的业务需求。

#2


引用 1 楼 WeiXiao_365 的回复:
焦点问题是比较奇葩,有时候不明不白,焦点就会跑到一个你意想不到的控件。这个地方不需要用setFocus吧,你聚焦的时候。按理,它会自动进行焦点切换的。你用setFocus是不是有什么其它的业务需求。

嗯,是有需求,自动进行焦点切换。。。。文本框怎么进行自动焦点切换啊,,一直在输入,没设置没什么是不会自动切换焦点的

#3


引用 2 楼 yichengming11 的回复:
Quote: 引用 1 楼 WeiXiao_365 的回复:

焦点问题是比较奇葩,有时候不明不白,焦点就会跑到一个你意想不到的控件。这个地方不需要用setFocus吧,你聚焦的时候。按理,它会自动进行焦点切换的。你用setFocus是不是有什么其它的业务需求。

嗯,是有需求,自动进行焦点切换。。。。文本框怎么进行自动焦点切换啊,,一直在输入,没设置没什么是不会自动切换焦点的

你的场景没看太懂,自动焦点切换,是在什么场景下进行自动焦点切换呢?如果是edit1和edit2,你如果想edit1有焦点而edit2没有焦点,可以这样edit1->setFocus(),edit2->setFocusPolicy(Qt::NoFocus);

#4


不行。我想做的是,在textedit1输入完一句话后,然后切换到textedit2在输入一句话,,,但是用了setFocus(),是可以切换textedit,不过切换了,textedit还会保留那个光标的竖杠,尽管真实光标已经不在textedit1上面了。从表面上就不知道聚焦在哪个上面了,很不爽啊。

#5


楼主,你好。我也遇到了同样的问题。。。您这后来是怎么解决的呢???

#6


edit1->setFocusPolicy(Qt::NoFocus);
edit2->setFocus(),

先取消焦点,在设置焦点呢。。。。

#7


引用 5 楼 qq_16733499 的回复:
楼主,你好。我也遇到了同样的问题。。。您这后来是怎么解决的呢???
 最后我就把那个textedit1失能了。。。用的时候再使能。

#1


焦点问题是比较奇葩,有时候不明不白,焦点就会跑到一个你意想不到的控件。这个地方不需要用setFocus吧,你聚焦的时候。按理,它会自动进行焦点切换的。你用setFocus是不是有什么其它的业务需求。

#2


引用 1 楼 WeiXiao_365 的回复:
焦点问题是比较奇葩,有时候不明不白,焦点就会跑到一个你意想不到的控件。这个地方不需要用setFocus吧,你聚焦的时候。按理,它会自动进行焦点切换的。你用setFocus是不是有什么其它的业务需求。

嗯,是有需求,自动进行焦点切换。。。。文本框怎么进行自动焦点切换啊,,一直在输入,没设置没什么是不会自动切换焦点的

#3


引用 2 楼 yichengming11 的回复:
Quote: 引用 1 楼 WeiXiao_365 的回复:

焦点问题是比较奇葩,有时候不明不白,焦点就会跑到一个你意想不到的控件。这个地方不需要用setFocus吧,你聚焦的时候。按理,它会自动进行焦点切换的。你用setFocus是不是有什么其它的业务需求。

嗯,是有需求,自动进行焦点切换。。。。文本框怎么进行自动焦点切换啊,,一直在输入,没设置没什么是不会自动切换焦点的

你的场景没看太懂,自动焦点切换,是在什么场景下进行自动焦点切换呢?如果是edit1和edit2,你如果想edit1有焦点而edit2没有焦点,可以这样edit1->setFocus(),edit2->setFocusPolicy(Qt::NoFocus);

#4


不行。我想做的是,在textedit1输入完一句话后,然后切换到textedit2在输入一句话,,,但是用了setFocus(),是可以切换textedit,不过切换了,textedit还会保留那个光标的竖杠,尽管真实光标已经不在textedit1上面了。从表面上就不知道聚焦在哪个上面了,很不爽啊。

#5


楼主,你好。我也遇到了同样的问题。。。您这后来是怎么解决的呢???

#6


edit1->setFocusPolicy(Qt::NoFocus);
edit2->setFocus(),

先取消焦点,在设置焦点呢。。。。

#7


引用 5 楼 qq_16733499 的回复:
楼主,你好。我也遇到了同样的问题。。。您这后来是怎么解决的呢???
 最后我就把那个textedit1失能了。。。用的时候再使能。