Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. QLineEdit如何设置无焦点仍然显示文本光标,并且设置显示最新的内容(文本比输入框的固定长度长)
Forum Updated to NodeBB v4.3 + New Features

QLineEdit如何设置无焦点仍然显示文本光标,并且设置显示最新的内容(文本比输入框的固定长度长)

Scheduled Pinned Locked Moved Unsolved Chinese
2 Posts 2 Posters 1.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • MihanM Offline
    MihanM Offline
    Mihan
    wrote on last edited by
    #1

    如题。
    第一个问题我翻了一下源码,在事件处理中找到

    if (QApplication::keypadNavigationEnabled()) {
            if (e->type() == QEvent::EnterEditFocus) {
                end(false);
                d->setCursorVisible(true);
                d->control->setCursorBlinkPeriod(QApplication::cursorFlashTime());
            } else if (e->type() == QEvent::LeaveEditFocus) {
                d->setCursorVisible(false);
                d->control->setCursorBlinkPeriod(0);
                if (d->control->hasAcceptableInput() || d->control->fixup())
                    emit editingFinished();
            }
    

    应该就是在此判断焦点进出控制文本光标闪烁显示,我想知道如何直接调用哪个setcursorvisible,没深究d指针的类型,求指点。
    第二个问题在英文区问过,给了我一个elidedEdit的例子,但例子主要是说省略后面的内容(显示前面的),而我想得到的是显示问呗最新的部分,就像这里提问的输入框一样一直往下推,跟着光标一直往下,不显示最上面(旧的)内容。
    谢谢~

    K 1 Reply Last reply
    0
    • MihanM Mihan

      如题。
      第一个问题我翻了一下源码,在事件处理中找到

      if (QApplication::keypadNavigationEnabled()) {
              if (e->type() == QEvent::EnterEditFocus) {
                  end(false);
                  d->setCursorVisible(true);
                  d->control->setCursorBlinkPeriod(QApplication::cursorFlashTime());
              } else if (e->type() == QEvent::LeaveEditFocus) {
                  d->setCursorVisible(false);
                  d->control->setCursorBlinkPeriod(0);
                  if (d->control->hasAcceptableInput() || d->control->fixup())
                      emit editingFinished();
              }
      

      应该就是在此判断焦点进出控制文本光标闪烁显示,我想知道如何直接调用哪个setcursorvisible,没深究d指针的类型,求指点。
      第二个问题在英文区问过,给了我一个elidedEdit的例子,但例子主要是说省略后面的内容(显示前面的),而我想得到的是显示问呗最新的部分,就像这里提问的输入框一样一直往下推,跟着光标一直往下,不显示最上面(旧的)内容。
      谢谢~

      K Offline
      K Offline
      Kyrie 0
      wrote on last edited by
      #2

      @Mihan 请问设置无焦点仍然显示文本光标这个问题解决了吗?是如何解决的

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved