QtのQAbstractAnimationは、Neteaseクラウドミュージックの背景壁画像回転効果を実現します(2)

QtのQAbstractAnimationは、Qt 5.9.1で開発されたNetEaseクラウドミュージックの背景壁の画像回転効果を実現します。ダウンロードして使用することを歓迎し、欠陥を修正することを歓迎します。

ファイル:n459.com/file/25127180-479069053

以下は関係ありません。

- - - - - - - - - - - - - - - - - - - - - -境界線 - - - ----------------------------------------

IEブラウザーは、クリップボードコンテンツの直接読み取りと書き込みをサポートしています。

1 window.clipboardData.clearData();
2 window.clipboardData.setData( 'Text'、 'abcd');
しかし、このメソッドは安全ではなく、ユーザーのプライバシーを簡単に漏らしてしまうため、chromeなどのブラウザーはこれをサポートしていません。出口。

システムクリップボードを読む
多くの情報確認しましたシステムクリップボードの内容を貼り付ける場合は、まずシステムクリップボードの内容を読むことを前提としています。

イベントオブジェクトの取得:貼り付けイベントはclipboardData属性を提供します。属性にitems属性がある場合は、アイテムに画像タイプのデータがあるかどうかを確認できます。ただし、写真や単語などのファイルをコピーするためのフォルダはサポートされていません。テキストコンテンツとスクリーンショットコンテンツを割り当てることができます。

     //覆盖浏览器粘贴事件
    document.addEventListener('paste', function (e) {
        var clipboardData = e.clipboardData;
        if (!(clipboardData && clipboardData.items)) {//是否有粘贴内容
            return;
        }
        for (var i = 0, len = clipboardData.items.length; i < len; i++) {
            var item = clipboardData.items[i];
            if (item.kind === "string" && item.type == "text/plain") {
                item.getAsString(function (str) {
                    // str 是获取到的字符串,创建文本框
                    //处理粘贴的文字内容
                })
            } else if (item.kind === "file") {//file 一般是各种截图base64数据
                var pasteFile = item.getAsFile();
                // pasteFile就是获取到的文件
                var reader = new FileReader();
                reader.onload = function (event) {
                    var base64Img = event.target.result;
                }; // data url  
                reader.readAsDataURL(pasteFile);
            }
            var copy_content = e.clipboardData.getData('text/plain');
        }
    })

システムクリップボードへの書き込み
によって検出されたリソースはすべて、イベントオブジェクトに直接setDataですが、実際のテストは効果がありません。

e.clipboardData.setData( 'text / plain'、defaultText);
以下は、2つの測定された効果的な設定方法を提供します。

1)コピーイベントを監視し、コピーコマンドをトリガーします

ctrl + Cがキーストロークを監視した直後にevent.clipboardData.setDataを設定した場合、それは有効になりません。copyコマンドをトリガーした後にclipboardDataを書き込む必要があります。

ただし、必ずremoveEventListenerを削除してください。そうしないと、他の場所のコピーに影響します。

1 document.addEventListener( "paste"、function(e){ 2 console.log(e.clipboardData.getData( "text")); 3}); 4 document.onkeydown = function(e){ 5 if(e。 ctrlKey && e.keyCode == 67){// ctrl + C 6 function handler(event){ 7 event.clipboardData.setData( 'text / plain'、 "Custom Copy Content"); 8 document.removeEventListener( 'copy '、Handler、to true); .9 the event.preventDefault(); 10} 。11document.addEventListener(' copy '、Handler、to true); 12 is document.execCommand(' copy '); 13 is} 14}コピーコード2)byコピーするコンテンツをテキストに割り当て、テキストボックスのコンテンツを選択して、copyコマンドを実行します。














1 //复制2document.onkeydown
= function(e){ 3 if(e.ctrlKey && e.keyCode == 86){// ctrl + V 4 var cloneActiveElement =“需要复制的内容”; 5 var copyText = document.getElementById(“ copy_text”); 6 copyText.innerHTML = cloneActiveElement; 7 copyText.readOnly = false; 8 copyText.select(); 9 copyText.setSelectionRange(0、copyText.value.length); 10 document.execCommand( "copy"); 11 copyText.readOnly = true; 12}









おすすめ

転載: blog.csdn.net/gumenghua_com1/article/details/112601307