精华内容
下载资源
问答
  • DLabel模板 打印模板,Dlabel标签打印。一款简单好用的标签编辑软件,通过蓝牙与标签打印机连接,让用户 能随时随地、方便快捷的实现标签打印。支持文字、图片、图形、一维码、二维码编辑,随意排版,方便实用,...
  • Qt文档阅读笔记-QCustom3DLabel使用及Q3DSurface基本信号

    千次阅读 多人点赞 2020-01-03 15:53:28
    此实例主要是QCustom3DLabel的基本使用,以及Q3DSurface发射信号与C++后端的交互工作。 QCustom3DLabel:这个自定义的label类可以设置文本,字体,位置,放缩,旋转,颜色。看得见的边框和背景是可以被触发的。...

    此实例主要是QCustom3DLabel的基本使用,以及Q3DSurface发射信号与C++后端的交互工作。

     

    QCustom3DLabel:这个自定义的label类可以设置文本,字体,位置,放缩,旋转,颜色。看得见的边框和背景是可以被触发的。这里颜色、边框、背景有默认值,这个默认值是根据主题会变的(估计是windows或者Linux,或者各个系统的不同版本)

     

    selectedElementChanged这个信号是Q3DSurface从QAbstract3DGraph父类继承下来的。当界面有Item被选中的时候会被触发。

     

     

    程序运行截图如下!

    当点击X,Y,Z轴坐标的时候,LineEdit会被设置。

    当点击那个Label时,会对Label进行动态放缩。

    当在LineEdit中输入文本时,按下pushbutton,会对Label的数据进行设置

    关键代码如下:

    #include "widget.h"
    #include "ui_widget.h"
    #include <QtDataVisualization>
    #include <QCustom3DLabel>
    #include <QList>
    #include <QPropertyAnimation>
    #include <QFont>
    #include <QVector3D>
    #include <QDebug>
    
    using namespace QtDataVisualization;
    
    Widget::Widget(QWidget *parent)
        : QWidget(parent)
        , ui(new Ui::Widget)
    {
        ui->setupUi(this);
        m_surface = new Q3DSurface;
        this->setWindowTitle("CSDN IT1995");
        createLabel("Hello World");
        m_selectionAnimation = new QPropertyAnimation(this);
        m_selectionAnimation->setPropertyName("scaling");
        m_selectionAnimation->setDuration(500);
        m_selectionAnimation->setLoopCount(-1);
    
        QWidget *w = QWidget::createWindowContainer(m_surface);
        QHBoxLayout *lay = new QHBoxLayout;
        lay->addWidget(w);
        ui->widget->setLayout(lay);
    
        connect(m_surface, &QAbstract3DGraph::selectedElementChanged, this, &Widget::handleElementSelected);
        connect(ui->pushButton, &QPushButton::clicked, [=](){
    
            m_surface->removeCustomItem(m_label);
            createLabel(ui->lineEdit->text());
        });
    }
    
    Widget::~Widget()
    {
        delete m_surface;
        delete ui;
    }
    
    void Widget::handleElementSelected(int type)
    {
        if(type == QAbstract3DGraph::ElementCustomItem){
    
            QCustom3DItem *item = m_surface->selectedCustomItem();
            QCustom3DLabel *p = qobject_cast<QCustom3DLabel *>(item);
            if(p != nullptr){
    
                ui->lineEdit->setText(p->text());
                m_selectionAnimation->setTargetObject(item);
                m_selectionAnimation->setStartValue(item->scaling());
                m_selectionAnimation->setEndValue(item->scaling() * 1.5f);
                m_selectionAnimation->start();
            }
        }
        else if(type == QAbstract3DGraph::ElementSeries){
    
        }
        else if(type == QAbstract3DGraph::ElementAxisXLabel){
    
            ui->lineEdit->setText("X Label clicked");
        }
        else if(type == QAbstract3DGraph::ElementAxisYLabel){
    
            ui->lineEdit->setText("Y Label clicked");
        }
        else if(type == QAbstract3DGraph::ElementAxisZLabel){
    
            ui->lineEdit->setText("Z Label clicked");
        }
    }
    
    void Widget::createLabel(const QString text)
    {
        QFont titleFont = QFont("Century Gothic", 30);
        titleFont.setBold(true);
        m_label = new QCustom3DLabel(text, titleFont, QVector3D(0.0f, 1.2f, 0.0f), QVector3D(1.0f, 1.0f, 0.0f), QQuaternion());
        m_label->setPositionAbsolute(true);
        m_label->setFacingCamera(true);
        m_label->setBackgroundColor(QColor(0x66cdaa));
        m_surface->addCustomItem(m_label);
    }

    源码下载地址如下:

    https://github.com/fengfanchen/Qt/tree/master/Qt3DLabel

     

    展开全文
  • 去例子萌里瞄了一眼,发现了css2dlabel 这个例子。 远瞅是这样的!其实近瞅也这样,这个顶着一个moon的月亮会绕着这个地球一直旋转,上面的标签也会和他一起移动。(我总感觉应该顶一个奋斗当标签) 闲言少叙,来看...

    最近需要给自个儿项目的模型加上标签,来显示一些有的没的的数据。

    去例子萌里瞄了一眼,发现了css2dlabel 这个例子。

    远瞅是这样的!其实近瞅也这样,这个顶着一个moon的月亮会绕着这个地球一直旋转,上面的标签也会和他一起移动。(我总感觉应该顶一个奋斗当标签)
    在这里插入图片描述
    在这里插入图片描述

    闲言少叙,来看看咋用的。

    调用篇

    拿月球举例子吧

    生成球。这个瞄一眼应该不会有太大的问题。

    在这里插入图片描述
    shininess。默认是30,看起来会有明显的高光点。而月球表面那么多石灰一样的东西,太亮不太真,所以调暗点。

    下面是30和5的对比,大小应该一样,截屏没控制好。

    在这里插入图片描述
    在这里插入图片描述
    生成标签如下:
    在这里插入图片描述

    正常生成一个文字为Moon的div,label类里有点样式,不多。要想丰富样式就多改改这里。

    重点来了,他生成了一个CSS2DObject类,传入了那个div, 并把它举到了月亮头顶。加到了月亮坐标系。

    如果新建了一个三维的无论什么东西,加到月亮里面都是会跟着月亮一起动的。

    可是,我们加的是二维的。不在一个维度里。这也是这个例子最有趣的地方。

    Init函数里示例化了一个CSS2DRenderer,这个类里面有一个超大的隐藏的div来管理所有的label,这个下面读源码的时候还会分析,先瞄一眼过,应该问题不大。
    在这里插入图片描述

    调用部分剩下就是,让月亮转转,刷新一下labelRenderer,最后这个才是这盘菜所有的精华。

    在这里插入图片描述
    核心篇

    这里总管两个类,一个CSS2DObject,一个CSS2DRenderer

    CSS2DObject 这个类没有太大的用处,基本是用来类型识别,本身也很简单

    在这里插入图片描述
    用来类型识别

    上面的这个监听很有趣,不知道干嘛的,印象里也没有这个监听,难道要自定义使用?类似于下面这样?参考代码来自:这个小哥

    window.addEventListener("testEvent", function(obj){
           console.log(obj.data);
           alert("触发成功!")
    });
    function clickHere() {
         // 创建自定义事件
         var event = document.createEvent("HTMLEvents");
         // 初始化testEvent事件
         event.initEvent("testEvent", false, true);
         event.data = {"click":true};
         // 触发自定义事件
         window.dispatchEvent(event);
     }
    

    查了一下Dom事件也没发现。

    CSS2DRenderer类里面负责了主要的操作和更新。

    先看一下这个类里面的定义的变量
    在这里插入图片描述

    前面说过,这个里面会定义一个hidden的大的div,大概就是屏幕的分辨率,来管理所有的label,这里的长宽高都是这个div相关的属性。

    vector记录投影变换后,在投影坐标系里面的坐标值。

    研究清楚了这个我突然知道CSS2DObject这个类是干啥用的了,里面没有几行代码,我以为只是用来类型区分的,其实不是,我上面说,如果是一个三维物体扔在一个移动的父物体上,这个三维物体是会跟随父物体运动的,所以这货的意义就在于,它把一个label纯二维的东西,其实给包装成了一个三维的物体,让这个三维物体跟着父物体运动,反算这个三维物体的屏幕坐标,也就知道了label的屏幕偏移量。感觉好有趣,果然每个人实现的脑回路都是不一样的。如果是这样计算的话,其实直接计算实体的屏幕坐标也是可以的,比如那个月亮,在给一点二维上的偏移。

    继续说这个vector,用到的就3行,还是蛮考验基础的。

    在这里插入图片描述
    如果一个物体是CSS2DObject的话,就从它的世界矩阵中获取这哥们的世界坐标。

    顺便也可以把定义的viewProjectionMatrix变量也解释了。

    我的一个 CSS2DObject 获得了世界坐标后,又转换到了相机的坐标系,然后进行了投影变换,可以简单理解为投影到了屏幕。这就是第二行做的事,最后一行,希望的尽量解释清楚。

    translate(-50%,-50%) 这个变换如果不加,label偏右偏下,为了让它居中,加了这个。如下:

    在这里插入图片描述在这里插入图片描述

    后面的translate是为了将投影变换后的坐标,和屏幕的坐标相对应。如下:

    在这里插入图片描述
    在这里插入图片描述
    我们有的是第一个坐标系的坐标,要获得第二个坐标系的,这个映射自己回去导,就是后半段的translate。

    八卦一下viewProjectionMatrix矩阵是怎么获得的,
    在这里插入图片描述

    首先把scene里面的所有的物体撸一遍更一下世界坐标,然后更一下相机的世界坐标,

    viewMatrix保存的是从世界坐标系转换到相机坐标系需要的矩阵。

    在乘上projectionMatrix,就可以换到投影坐标系了~

    (zOrder是自带的函数,rayObj是我自己根据需要加上的)

    cache里的 WeakMap() 据说是ES6的新玩具,查了一下,瞄了一眼别人家的文章,主要的特点就以下几个:

    key必须是object,且不可枚举,也就是说不可以被遍历。

    没有size。

    它的出现对垃圾回收友好,就是说没有引用的话可以袅袅悄悄的被回收。因为是“弱指针”。(最近满世界都对垃圾很关注嘛)

    这个工程里是这样用滴。
    在这里插入图片描述
    在这里插入图片描述

    还发现了一个好用的函数 scene.traverse 这家伙可以遍历 scene里面所有的物体。

    周五没写完,隔了两天在写这篇像喝断片了一样。= =,看来还是要一鼓作气啊~

    查了一下源码,发现这是Object3D.prototype里面的函数,大部分的类都是继承自这个类的,也就是说,大部分的实例都有这个函数。源码也不复杂,封装完的代码还是很清爽的。

    在这里插入图片描述
    因为项目的需要,在原有功能的基础上增加了遮挡隐藏和距离限制显示的功能。

    简单来说就是如果地球挡住了月亮,就不显示月亮的标签。

    如果在控制相机的过程中,和月球/地球的距离过近或过远都会隐藏标签。

    有时候项目的标签不止一两个,甚至可能会很多,这样可以有效突出正在关注的标签。

    增加了一个函数rayObj,接受四个参数(scene,camera, near,far)

    最后两个如果不传参,相当于没有限制。

    在这里插入图片描述
    获得相机和含有CSS2DObject标签的物体的位置

    在这里插入图片描述
    判断是否在距离以内
    在这里插入图片描述

    判断是否有遮挡

    在这里插入图片描述
    从相机朝着物体发了一个射线,看看有没有遮挡。

    因为有人私信问过我,所以我把疑似当年的CSS2DRenderer.js又翻出来了。给大家一个完整的参考。

    /**
     * CSS2DRenderer.js
     */
    
    THREE.CSS2DObject = function ( element ) {
    
    	THREE.Object3D.call( this );
    
    	this.element = element;
    	this.element.style.position = 'absolute';
    
    	this.addEventListener( 'removed', function ( event ) {
    
    		if ( this.element.parentNode !== null ) {  
    
    			this.element.parentNode.removeChild( this.element );
    
    		}
    
    	} );
    };
    
    THREE.CSS2DObject.prototype = Object.create( THREE.Object3D.prototype );
    THREE.CSS2DObject.prototype.constructor = THREE.CSS2DObject; 
    
    //
    
    THREE.CSS2DRenderer = function () {
    
    	console.log( 'THREE.CSS2DRenderer', THREE.REVISION );
    
    	var _width, _height;
    	var _widthHalf, _heightHalf;
    
    	var vector = new THREE.Vector3();
    	var viewMatrix = new THREE.Matrix4();
    	var viewProjectionMatrix = new THREE.Matrix4();
    
    	var cache = {
    		objects: new WeakMap()
    	};
    
    	var domElement = document.createElement( 'div' );
    	domElement.style.overflow = 'hidden';
    
    	this.domElement = domElement;
    
    	this.getSize = function () {
    
    		return {
    			width: _width,
    			height: _height
    		};
    
    	};
    
    	this.setSize = function ( width, height ) {
    
    		_width = width;
    		_height = height;
    
    		_widthHalf = _width / 2;
    		_heightHalf = _height / 2;
    
    		domElement.style.width = width + 'px';
    		domElement.style.height = height + 'px';
    
    	};
    
    	var renderObject = function ( object, camera ) {
    		if ( object instanceof THREE.CSS2DObject ) {
    
    			vector.setFromMatrixPosition( object.matrixWorld );			
    			vector.applyMatrix4( viewProjectionMatrix );
    			var element = object.element;
    			var style = 'translate(-50%,-50%) translate(' + ( vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - vector.y * _heightHalf + _heightHalf ) + 'px)';
    			
    			element.style.WebkitTransform = style;
    			element.style.MozTransform = style;
    			element.style.oTransform = style;
    			element.style.transform = style;
    
    			var objectData = {
    				distanceToCameraSquared: getDistanceToSquared( camera, object )
    			};
    
    			cache.objects.set( object, objectData );
    
    			if ( element.parentNode !== domElement ) {
    
    				domElement.appendChild( element );
    
    			}
    
    		}
    
    		for ( var i = 0, l = object.children.length; i < l; i ++ ) {
    
    			renderObject( object.children[ i ], camera );
    
    		}
    
    	};
    
    	var getDistanceToSquared = function () {
    
    		var a = new THREE.Vector3();
    		var b = new THREE.Vector3();
    
    		return function ( object1, object2 ) {
    
    			a.setFromMatrixPosition( object1.matrixWorld );
    			b.setFromMatrixPosition( object2.matrixWorld );
    
    			return a.distanceToSquared( b );
    
    		};
    
    	}();
    
    	var filterAndFlatten = function ( scene ) {
    
    		var result = [];
    
    		 ( function ( object ) {
    
    			if ( object instanceof THREE.CSS2DObject ) result.push( object );
    
    		} );
    
    		return result;
    
    	};
    
    	var zOrder = function ( scene ) {
    
    		var sorted = filterAndFlatten( scene ).sort( function ( a, b ) {
    
    			var distanceA = cache.objects.get( a ).distanceToCameraSquared;
    			var distanceB = cache.objects.get( b ).distanceToCameraSquared;
    
    			return distanceA - distanceB;
    
    		} );
    
    		var zMax = sorted.length;
    		for ( var i = 0, l = sorted.length; i < l; i ++ ) {
    
    			//sorted[ i ].element.style.visibility = "visible";
    			sorted[ i ].element.style.zIndex = zMax - i;
    
    		}
    
    	};
    	var rayObj = function(scene,camera, near,far)
    	{
    		this.near = near || 0;
    		this.far = far || Infinity;
    		scene.traverse( function ( object ) {
    
    			if ( object instanceof THREE.CSS2DObject ) 
    			{
    				let visible = "visible";
    				let posCam = new THREE.Vector3().setFromMatrixPosition( camera.matrixWorld );
    				let posMesh = new THREE.Vector3().setFromMatrixPosition( object.parent.matrixWorld );
    				
    				// 判断是否在距离内
    				let dis = posCam.clone().distanceTo(posMesh);
    				if(visible == "visible")
    				{
    					if(dis < this.near || dis > this.far)
    					{
    						visible = "hidden"; 
    					}
    				}
    				
    				// 判断是否有遮挡
    				if(visible == "visible")
    				{
    					let dir = posMesh.clone().sub(posCam).normalize();
    					let raycaster = new THREE.Raycaster(posCam, dir,camera.near,camera.far);
    					let intersects = raycaster.intersectObjects( scene.children );
    				
    					for(let i = 0; i < intersects.length; i++)
    					{
    						if(intersects[i].object instanceof THREE.AxesHelper)
    						{
    							continue;
    						}
    						if(intersects[i].object == object.parent)
    						{
    							continue;
    						}
    						visible = "hidden";
    					}
    				}
    				object.element.style.visibility = visible;
    
    			}
    
    		} );
    	};
    	this.render = function ( scene, camera ) {
    
    		scene.updateMatrixWorld(); 
    
    		if ( camera.parent === null ) camera.updateMatrixWorld();
    
    		viewMatrix.copy( camera.matrixWorldInverse );
    		viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, viewMatrix );
    
    		renderObject( scene, camera );
    		//zOrder( scene );
    		rayObj(scene,camera);
    
    	};
    
    };
    
    

    css2d_label.html

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
    		<title>three.js css2d - label</title>
    		<style>
    			body {
    				background-color: #000;
    				margin: 0;
    				overflow: hidden;
    			}
    			#info {
    				position: absolute;
    				top: 0px;
    				width: 100%;
    				color: #FFF;
    				padding: 5px;
    				font-family: Monospace;
    				font-size: 13px;
    				text-align: center;
    				z-index: 1;
    			}
    
    			.label{
    				width: 80px;
    				height: 30px;
    				text-align: center;
    				color: #FFF;
    				font-family: sans-serif;
    				padding: 2px;
    				background: url("textures/labelBg.png");
    			    background-size: 80px 32px;
    			}
    
    			a {
    				color: #000000;
    			}
    
    		</style>
    	</head>
    	<body>
    		<div id="info"><a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - three.js css2d - label</div>
    		<div id="tets"></div>
    		<script src="threejs/three.js"></script>
    
    		<script src="threejs/OrbitControls.js"></script>
    
    		<script src="threejs/CSS2DRenderer.js"></script>
    
    		<script>
    		
    
    			var camera, scene, renderer, labelRenderer;
    
    			var clock = new THREE.Clock();
    			var textureLoader = new THREE.TextureLoader();
    
    			var earth, moon;
    
    			init();
    			animate();
    
    			function init() {
    
    				var EARTH_RADIUS = 1;
    				var MOON_RADIUS = 0.27;
    
    				camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );
    
    				camera.position.set( 10, 5, 20 );
    
    				var controls = new THREE.OrbitControls( camera );
    
    				scene = new THREE.Scene();
    				scene.background = new THREE.Color( 0x333333 );
    
    				var dirLight = new THREE.DirectionalLight( 0xffffff );
    				dirLight.position.set( 0, 0, 1 );
    				scene.add( dirLight );
    
    				var axesHelper = new THREE.AxesHelper( 5 );
    
    				scene.add( axesHelper );
    
    				//
    
    				var earthGeometry = new THREE.SphereBufferGeometry( EARTH_RADIUS, 32, 32);
    				var earthMaterial = new THREE.MeshPhongMaterial( {
    					specular: 0x333333,
    					shininess: 5,
    					map: textureLoader.load( 'textures/planets/earth_atmos_2048.jpg' ),
    					specularMap: textureLoader.load( 'textures/planets/earth_specular_2048.jpg' ),
    					normalMap: textureLoader.load( 'textures/planets/earth_normal_2048.jpg' ),
    					normalScale: new THREE.Vector2( 0.85, 0.85 )
    				} );
    				earth = new THREE.Mesh( earthGeometry, earthMaterial );
    				earth.name = "earth";
    				scene.add( earth );
    
    				var moonGeometry = new THREE.SphereBufferGeometry( MOON_RADIUS, 16, 16 );
    				var moonMaterial = new THREE.MeshPhongMaterial( {
    					shininess: 5,
    					map: textureLoader.load( 'textures/planets/moon_1024.jpg' )
    				} );
    				moon = new THREE.Mesh( moonGeometry, moonMaterial );
    				moon.position.set(10,0,0);
    				moon.name = "moon";
    				scene.add( moon );
    
    				//
    
    				var earthDiv = document.createElement( 'div' );
    				earthDiv.className = 'label';
    				earthDiv.textContent = 'Earth';
    				earthDiv.style.marginTop = '-1em';
    				var earthLabel = new THREE.CSS2DObject( earthDiv );
    				earthLabel.position.set( 0, EARTH_RADIUS, 0 );
    				earth.add( earthLabel );
    
    				var moonDiv = document.createElement( 'div' );
    				moonDiv.className = 'label';
    				moonDiv.textContent = 'Moon';
    				moonDiv.style.marginTop = '-1em';
    				var moonLabel = new THREE.CSS2DObject( moonDiv );
    				moonLabel.position.set( 0, MOON_RADIUS, 0 );
    				moon.add( moonLabel );
    
    				//
    
    				renderer = new THREE.WebGLRenderer();
    				renderer.setPixelRatio( window.devicePixelRatio );
    				renderer.setSize( window.innerWidth, window.innerHeight );
    				document.body.appendChild( renderer.domElement );
    
    				labelRenderer = new THREE.CSS2DRenderer();
    				labelRenderer.setSize( window.innerWidth, window.innerHeight );
    				labelRenderer.domElement.style.position = 'absolute';
    				labelRenderer.domElement.style.top = 0;
    				document.body.appendChild( labelRenderer.domElement );
    
    			}
    
    			function animate() {
    
    				requestAnimationFrame( animate );
    
    				var elapsed = clock.getElapsedTime();
    
    				moon.position.set( Math.sin( elapsed ) * 5, 0, Math.cos( elapsed ) * 5 );
    
    				renderer.render( scene, camera );
    				labelRenderer.render( scene, camera );
    
    			}
    
    		</script>
    	</body>
    </html>
    
    
    展开全文
  • 最近写了很多关于SceneKit 的入门教程文章,初衷就是想给应用增加一点色彩,今天就教大家实现一个简单的3DLabel 的小框架.如果你的应用中需要实现3D字体展示的功能,这个可能是你最好的选择。 支持的功能 1.设置字体...
        

    最近写了很多关于SceneKit 的入门教程文章,初衷就是想给应用增加一点色彩,今天就教大家实现一个简单的3DLabel 的小框架.如果你的应用中需要实现3D字体展示的功能,这个可能是你最好的选择。

    • 支持的功能

    1.设置字体的大小
    2.设置字体颜色
    3.设置背景颜色
    4.设置3D字体深度
    5.设置文字对齐方式
    6.设置尾部省略模式
    7.设置文字旋转角度
    8.支持手势移动字体观察
    9.支持使用图片填充
    10.支持天空盒子场景

    • 如何使用

    一段代码告诉你

    - (void)viewDidLoad {
        [super viewDidLoad];
        OS3DLabel *label = [[OS3DLabel alloc]initWithFrame:CGRectMake(0, 10, self.view.bounds.size.width, 100)];
        /// 是否可以控制
        label.label.allowsControl  = true;
        /// 设置
        label.backgroundColor = [UIColor purpleColor];
        /// 单行显示
        label.isSingle = NO;
        /// 设置字体的大小
        label.fontSize = 2;
        /// 设置文字内容
        label.text = @"让学习成为一种习惯---酷走天涯";
        /// 设置尾部省略模式
        label.truncationMode = kCATruncationStart;
    
        /// 设置对其方式
        label.alignmentMode = kCAAlignmentCenter;
    
        /// 设置深度
        label.depth = 0.5;
        /// 设置字体颜色
        label.textColor = [UIColor greenColor];
        /// 设置环境场景
        label.scene.background.contents = @"skybox01_cube.png";
       /// 设置填充内容
       label.contents = [UIImage imageNamed:@"1.png"];
        [self.view addSubview:label];
    }
    

    展示几张图篇

    1594482-cbb247ebb62a4739.png
    多行居中显示
    1594482-7fa9434d160707c5.png
    单行显示,从开头省略
    1594482-caa3dfdf637d7d2b.png
    当行显示,省略中间
    1594482-49e26996f3b4853c.png
    设置填充内容
    1594482-1b22762d0f50811e.gif
    支持天宫盒子

    快去下载代码玩玩吧

    如果想学习SceneKit 请去appstory 搜索scenekit

    展开全文
  • dev-disk-by\x2dlabel-cryptnas.device: Job dev-disk-by\x2dlabel-cryptnas.device/start timed out. Timed out waiting for device dev-disk-by\x2dlabel-cryptnas.device. </code></pre> <p>Perhaps you can ...
  • var dLabel = document.getElementById("dLabel"); dLabel.addEventListener('click', function (event) { var pageUrl = window.location.href; var copyTextarea = document.getElem...

    var dLabel = document.getElementById("dLabel");

    dLabel.addEventListener('click', function (event) {
    var pageUrl = window.location.href;
    var copyTextarea = document.getElementById("pageUrlInput");
    copyTextarea.value = pageUrl;

    $("#copyInput").css({ "display": "" });

    copyTextarea.select();
    try {
    var successful = document.execCommand('copy');
    var msg = successful ? 'successful' : 'unsuccessful';
    console.log('Copying text command was ' + msg);
    } catch (err) {
    console.log('Oops, unable to copy');
    }
    });

    转载于:https://www.cnblogs.com/maoyazhi/p/6128366.html

    展开全文
  • <div><p>I am using the awesome Translate plugin ...<p>The label is working while the dlabel is not. The dlabel is a field in repeater.</p><p>该提问来源于开源项目:rainlab/translate-plugin</p></div>
  • button id=dLabel type=button data-toggle=dropdown aria-haspopup=true aria-expanded=false> Dropdown trigger <span class=caret></span> </button> <ul class=dropdown-menu aria-labelledby=...
  • [iOS]修改UILabel的行间距/段间距/缩进

    万次阅读 2016-04-29 16:23:05
    [iOS]修改UILabel的行间距/段间距/缩进 - (void)viewDidLoad { [super viewDidLoad];... UILabel *dLabel = _desLab;... NSString *dLabelString = dLabel.text; NSMutableAttributedString *attribute
  • 一填空题 1下列哪个不是Activity的生命周期方法之... onResume 2下列用于进行文本输入的组件是 ATextView BButton CEditText DLabel 3下面哪个不是Android的界面布局方式 ABorderLayout BLinearLayout CTableLayout DRe
  • 一、思路: 在设计前端页面时,展示的字段内容不应写死,因此引入了数据库字典的概念,如下图2。...本文要达到的效果为:在MySQL数据库中修改dlabel的值,在前端页面应同步更新。 图1 前端页面 图2 数据
  • 提取rsfc管道 基于表面的rs-fMRI预处理脚本,用于从原始粗体时间序列和T1w图像中提取静止状态...Gordon_352_parc.dlabel.nii Gordon等人的碎片地图集,2016年 检查此pdf文件以获取此脚本的更多详细信息 检查样本目录
  • QT 3D 可视化数据文档

    2021-04-16 23:37:28
    图表类型: QAbstract3DGraph Q3DBars Q3DScatter Q3DSurface ...QCustom3DLabel QCustom3DVolume 数据: QAbstract3DSeries QBar3DSeries QScatter3DSeries QSurface3DSeries 数据2: QBarDataItem QS
  • leetcode1104

    2019-06-30 13:00:00
    1 import math 2 class Solution: 3 def findParent(self,label,pardepth): 4 psum = 2**(pardepth-1) + 2**(pardepth) - 1 5 label = label // 2 6 dlabel = psum - labe...
  • PyQt5 学习记录

    2020-02-29 11:45:30
    PyQt5 DLabel Demo 1: 先上结果图 2: 直接上代码 from PyQt5.QtWidgets import * import sys class MyQLabelDemo(QDialog): def init(self): super().init() self.setWindowTitle('QLabel Demo') self....
  • 常用组件 下拉菜单 基本结构 1 <div class="dropdown"> 2 <!-- Link or button to toggle dropdown --> 3 <ul class="dropdown- ...menu" role="menu" aria-labelledby="dLabel"> 4 ...
  • 1.在widget类中初始化一个dialog m_wDialog=new xDialog(this); 2.在dialog类中创建一个...QLabel* m_dlabel=ui.label; 3.然后在widget类中设置dialog类中的内容 m_wDialog->label->setText("content"...
  • 要查看BMACS估计的结果推理图,请检查*.dlabel.nii文件,其中fs_LR 32k网格上代表大脑的位置。 R :当前分析中使用的函数。 external :当前分析中使用的外部软件/数据。 外部依赖 下面列出了BMACS中使用的一些基本...
  • <div class="container"> <div class="row"> <h2>Bootstrap 3多级下拉菜单</h2> <hr> <div class="dropdown"> <a id="dLabel" role="bu...
  • bootstrap之下拉菜单

    2019-09-30 16:48:56
    bootstrap之下拉菜单 作者原创,未经允许,拒绝转载。 先看一下效果 代码 <!-- 下拉菜单 --> <div class="dropdown"&...button id="dLabel" type="button" data-toggle="dropdown" class="btn bt...
  • Arch

    2016-01-29 16:02:01
    A start job is running for dev-disk-byx2dlabel-swapspacedevice systemd 关于启动时间 systemctl fstab文件/etc/fstab包含了静态文件系统信息,定义了存储设备和分区整合到整个系统的方式。mount 命令会读取这个...
  • bootstrap三级目录样式

    千次阅读 2017-12-28 16:55:34
    bootstrap --&gt;简单的三级目录样式,可以直接使用 ...dLabel" role="button" data-toggle="dropdown" class="btn btn-primary" data-target="#" href=&qu
  • 不知道大家用bootstrap有没有碰到这个问题, <...button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown trigger <span...
  • nixops deploy stops network

    2020-11-21 18:28:41
    eth0.service, network-local-commands.service, network-setup.service,</strong> nix-daemon.service, nscd.service, smartd.service, systemd-fsck-disk-by\x2dlabel-boot.service, systemd-journald.service, ...
  • add support for submenu

    2020-12-26 04:05:16
    dLabel"> ... <li class="dropdown-submenu"> <a tabindex="-1" href="#">More options</a> <ul class="dropdown-menu"> ......
  • GtkButton继承自GtkBin,所以,要想做...如果是只需要放上一个image的button,如下: GtkWidget *hbox, *playbtn, *pausebtn, *stopbtn, *placeholder, *dlabel; GtkWidget *playimg, *pauseimg, *stopimg; hbox =...
  • checkisomd5-disk-by\x2dlabel-Rawhide\x2dXfce\x2dLive\x2d715 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' [ 319....
  • dLabel1"> <datetimepicker data-ng-model="currentItem.startOn" on-set-time="startTimeChanged(newDate, oldDate, currentItem.startOn)" data-datetimepicker-config=&#...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

dlabel