2016-06-17 9 views
4

Flickableの中に入れてTextAreaをスクロール可能にすることはできますが、スクロールを開始しようとするとテキストを選択できません。ただし、selectByMouseにすると選択できますが、スクロールすることはできません。Qt5.7 QML QtQuick;デスクトップ&Android用のスクロール可能な編集可能なTextAreaを作成する方法

両方行うにはどうすればよいですか?

はここに私のコード例です:これについて移動するための最良の方法だろう何

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQml 2.2 

ApplicationWindow 
{ 
    visible: true 
    width: 640 
    height: 800 

    function makeText() 
    { 
     var s = "click <a href=\"http://qt.io\">here</a>\n" 
     for (var i = 0; i < 10; ++i) 
     { 
      s += 
"<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras at tempus felis. Nulla facilisi. Duis quam purus, posuere eu rutrum vel, blandit quis lorem. Cras vitae orci eget lorem luctus cursus quis nec nibh. Sed luctus ligula urna, vel commodo nisi finibus quis. Donec pretium eu purus a porttitor. Nam vehicula nunc quis dui gravida luctus. Morbi fermentum, elit nec ullamcorper accumsan, ex ligula iaculis nisi, id pretium ipsum metus quis quam. In lobortis dignissim semper. Aenean at neque lorem. Maecenas dapibus, arcu a condimentum consequat, mauris enim vehicula nibh, in fringilla quam nisi eu ipsum.</p>" 
     } 
     return s 
    } 

    Flickable 
    { 
     id: flickable 
     anchors.fill: parent 
     flickableDirection: Flickable.VerticalFlick 

     // place a TextArea inside the flickable, you can edit text 
     // but you cannot select because click & move mouse flicks the view. 
     TextArea.flickable: TextArea 
     { 
      id: textarea 
      wrapMode: TextArea.Wrap 

      font.pointSize: 16 
      textMargin: 16 
      textFormat: TextEdit.RichText 

      // can select but kills scrolling 
      //selectByMouse: true 

      text: Qt.platform.os + "\n" + makeText() 

      // try out links 
      onLinkActivated: Qt.openUrlExternally(link) 
     } 
     ScrollBar.vertical: ScrollBar { } 
    } 
} 

、および株式答えがあります(があるはずですので!)。

私は、PressAndHoldを使って選択を実行できるアイデアを実装しようとしました。それはうまくいきますが、うんざりしています。これは良いアイデアですか?ここでベストプラクティスは何でしょうか。

もう1つは、Controls.2のポップアップメニュー&貼り付けメニューが表示されないことです。表示されるデスクトップの場合でもそうです。 Aは、Aが(文句を言わないショートカットキーを持っている)のAndroid用&ペーストメニューを切っ

  • デスクトップ用&ペーストメニューを切っ
    1. 方法スクロールを超える選択する:

      は私が実装する必要があり、この平均がい

    2. Android用選択ハンドル
    3. Android用カーソルポイントハンドル

    私はむしろ、これらのどれも、いわゆる、EditAreaコントロールで提供されていないことに気づくでしょう!

    ここでの推奨事項/リファレンスの実装または提案。 https://gist.github.com/anonymous/1ad94c9539fdc51d29258f6164f72487

    感謝:

    はところで、3,4 & 5はControls.1

    プロジェクトファイルからも存在しません。

  • +1

    ドキュメントを確認しましたか? http://doc.qt.io/qt-5/qml-qtquick-controls2-textarea.html#flickable-attached-propにはスクロールバーの例が示されています。これは、デスクトップ上で問題を解決することになるでしょう。 – Felix

    +0

    スクロールバーはありますが、すべてのスタイルでデフォルト/ユニバーサル/マテリアルが消えます。 –

    答えて

    2

    残念ながら、Qtプラットフォームの抽象化レイヤによる適切なテキスト選択のサポートは、Qt 5.7.0リリースに間に合うようにAndroid用には完了していませんでした。この分野では、iOSと組み込みLinuxがよりよくカバーされています。 Android側の進捗状況はhttps://bugreports.qt.io/browse/QTBUG-34867で監視できます。

    +0

    ご清聴ありがとうございます。私は、ネイティブAndroidコントロールをラップするためにあなたのノートのいくつかを発見しました。これは私のために働いていた。 –

    関連する問題