position

Qt实现自定义滑动按钮

帅比萌擦擦* 提交于 2020-03-12 09:16:45
  今天记录下,使用Qt现有的组件,搭配来实现一个滑动按钮的效果。我看之前有人做过类似的,不过是在paintEvent事件里用画笔画的,我呢,比较懒,就使用现成的组件来实现吧,下面看下效果:      这是利用自定义的类继承QWidget,里面再加一个QLabel,来实现上面的效果。顺便提一下,以后可以将自己做得组件保存下来,方便以后项目里使用。 废话不多说,直接上核心代码,没玩过的,都来手动体验下吧。   下面是头文件: #ifndef CUSTOMBUTTON_H #define CUSTOMBUTTON_H #include <QWidget> #include <QLabel> #include <QTimer> #include <QMouseEvent> #include <QStyleOption> #include <QPainter> class CustomButton : public QWidget { Q_OBJECT public: explicit CustomButton(QWidget *parent = nullptr,int width=50, int height=20); private: QLabel* myLabel; QTimer timer; int m_width; int m_height; int dir; int

Position属性

大兔子大兔子 提交于 2020-03-12 04:00:29
文档流 一、什么是文档流? “流”,我们在生活中经常听到这个词,比如水流,电流。就像水流从高处往低处流一样,我们可以把文档流想象成html元素在浏览器上“流动”。浏览器的顶端就是河流的源头,浏览器的底部就是河流的尽头。 那么所谓的文档流(normal flow,也被称为“普通流”),指的是就是元素排版布局过程中,元素会自动从左往右,从上往下地遵守这种流式排列方式。 当浏览器渲染html文档时,从顶部开始开始渲染,为元素分配所需要的空间,每一个块级元素单独占一行,行内元素则按照顺序被水平渲染直到在当前行遇到了边界,然后换到下一行的起点继续渲染。那么此时就不得不说一下块级元素和行内元素。 二、块级元素与行内元素 块级元素:顾名思义,这个元素是“一块”,那么作为一个块,它就应该有自己的宽度和高度。而且它比较霸道,每个块级元素默认占一行高度,一行内添加一个块级元素后无法一般无法添加其他元素(float浮动后除外),一般作为容器使用,常见的块级元素有:from、select、 textarea、h1-h6 、table 、button 、hr 、p 、ol 、ul等。 结合以上内容,块级元素拥有以下特点: 1.每个块级元素都是独自占一行。 2.元素的高度、宽度、行高和边距都是可以设置的。   3.元素的宽度如果不设置的话,默认为父元素的宽度。 行内元素:显然,这种元素存在于一行内

div+css相对定位和绝对定位

霸气de小男生 提交于 2020-03-11 21:54:17
今天突然发现自己在布局的时候思路很乱,于是毅然决然的想要重新的理一下自己的布局思路,今天就先从定位开始吧~   绝对定位(absolute):将被赋予此定位方法的对象从文档流中拖出,如果对象的父级没有设置定位属性,则依据body对象左上角作为参考进行定位。绝对定位对象可层叠,层叠顺序可通过z-index属性控制,z-index值为无单位的整数,大的在最上面,可以有负值(目前负值FF不支持)。    同时z-index仅能在定位元素上奏效!!!   相对定位(relative):对象不可层叠,依据left,right,top,bottom等属性在正常文档流中偏移自身位置。同样可以用z-index分层设计。    2.定位的形象解释   我先来架设一个虚拟的场景:有一个矩形的房间,里面还有一个水桶装了些水,水里还浸泡着一个西瓜,这个房间半空中还有不少的钩子用于挂东西用。现在我把网页元素与上面物件对应上,那么房间就是一个网页,水桶是网页中的一个板块,桶中的水就是文本流,西瓜就是将要被定位的对象。   (1)贡献的绝对定位(absolute)   对照前面解释,如果西瓜被赋予绝对定位,那么就等于把西瓜从水中捞起来挂在半空中的钩子上,水桶中西瓜原来占用的空间水会自动填补它(绝对定位对象会让出自己原先占用位置,所以说它是贡献的)。此时如果之前没有对水桶进行定位设定

3个遮罩层

Deadly 提交于 2020-03-11 16:16:36
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>Jquery遮罩层</title> <style type="text/css"> #BgDiv{background-color:#e3e3e3; position:absolute; z-index:99; left:0; top:0; display:none; width:100%; height:1000px;opacity:0.5;filter: alpha(opacity=50);-moz-opacity: 0.5;} #DialogDiv{position:absolute;width:400px; left:50%; top:50%; margin-left:-200px; height:auto; z-index:100;background-color:#fff;

xpath取其中几个使用position

家住魔仙堡 提交于 2020-03-11 13:58:42
from lxml import etree html = ''' <!DOCTYPE html> <html lang="en"> <head> <!--网页头部信息--> <title>网页名</title> </head> <body> <!--下面是网页正文--> <div class="two">id-text</div> <div class="one two">class-text</div> <div class="one">class-span</div> <div class="three">three</div> </body> </html> ''' html =etree.HTML(html) content1 = html.xpath("//div[position()>2 and contains(@class,'three')]/@class") #取div位置大于2的 并且类包含three的 print(content1) 来源: https://www.cnblogs.com/php-linux/p/12461872.html

java.nio.ByteBuffer 以及flip,clear及rewind区别

假如想象 提交于 2020-03-11 10:26:02
Buffer 类 定义了一个可以线性存放primitive type数据的容器接口。Buffer主要包含了与类型(byte, char…)无关的功能。 值得注意的是 Buffer及其子类都 不是线程安全 的。 每个Buffer都有以下的属性: capacity 这个Buffer最多能放多少数据。capacity一般在buffer被创建的时候指定。 limit 在Buffer上进行的读写操作都不能越过这个下标。当写数据到buffer中时,limit一般和capacity相等,当读数据时, limit代表buffer中有效数据的长度。 position 读/写操作的当前下标。当使用buffer的相对位置进行读/写操作时,读/写会从这个下标进行,并在操作完成后, buffer会更新下标的值。 mark 一个临时存放的位置下标。调用mark()会将mark设为当前的position的值,以后调用reset()会将position属性设 置为mark的值。mark的值总是小于等于position的值,如果将position的值设的比mark小,当前的mark值会被抛弃掉。 这些属性总是满足以下条件: 0 <= mark <= position <= limit <= capacity limit和position的值除了通过limit()和position()函数来设置

ByteBuffer的实验

て烟熏妆下的殇ゞ 提交于 2020-03-11 10:17:48
//代码参考 https://blog.csdn.net/coding_1994/article/details/87902828 ByteBuffer buff = ByteBuffer.allocate(1024); String str = "helloWorld"; buff.put(str.getBytes()); System.out.println(new String(buff.array())); System.out.println("position:" + buff.position() + "\t limit:" + buff.limit() + "\t capacity:" + buff.capacity()); // 读取两个字节byte[] abytes = new byte[1]; byte[] abytes = new byte[1]; buff.get(abytes);//其实是byte 0值 System.out.println("get one byte to string:" + new String(abytes)); // Reads the byte at this buffer's current position, and then increments // the position. buff.get();/

android ListView 在初始化时多次调用getView()原因分析

余生颓废 提交于 2020-03-11 07:58:27
今天在做一个功能:在初始化ListView时,把第一行背景置为黄色,同时保存第一行对象,用于在点击其他行时将该行重新置为白色。 if(position==0){ convertView.setBackgroundColor(Color.YELLOW); lastconvertView=convertView; } 结果运行时发现第一行的颜色一直会是黄色而无法改变。调试了之后发现getView中 if(position==0) 居然会多次进入,最终导致的结果便是我最后一次取得的lastconvertView并非listview上面的第一行。网上查了之后发现原因是因为未固定listview的高度导致的,但是root cause却找不到说明。于是去翻阅了源码+大量调试,大概推算出了原因,在此记录。 首先是说明下ListView的显示机制,listview的机制是这样子的: 假如你有1000条数据,但是屏幕只能显示10条,那么当你第一次加载显示的时候,会先创建10个View,1-10,当你拖动Listview,使1隐藏而11显示的时候,系统会自动把填充1的View传递过来,注意看代码Adapter的getView方法 @Override public View getView(final int position, View convertView, ViewGroup parent)

【Android UI设计与开发】2.引导界面(二)使用ViewPager实现欢迎引导页面

≯℡__Kan透↙ 提交于 2020-03-11 03:58:25
1.实现的效果 2.编码前的准备工作 ViewPager是Android3.0之后提供的新特性,所以要想让你的应用向下兼容就必须要android-support-v4.jar这个包的支持,这是一个来自google提供的一个附加包。没有的百度下就有了。 3.具体的编码实现 (1)布局界面比较简单,加入ViewPager组件,以及底部的引导小点 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" /> <LinearLayout android:id="@+id/ll" android:layout_width="wrap_content" android:layout_height

ruby where用法

荒凉一梦 提交于 2020-03-10 23:50:25
用法1 Subject.where("position=?","2").order("name") 用法2 与find方法不同的是,where方法返回的结果不是数组而是ActiveRelation,这意味着我们可以基于当前的查询结果继续设置条件进行查询。 Subject.where(:position =>"2").class => ActiveRecord::Relation 用法3 通过to_sql方法我们能看到Rails将我们的条件转换成的SQL语句以便于调试 Subject.where(:position =>"2").to_sql => "SELECT `subjects`.* FROM `subjects` WHERE `subjects`.`position` = '2'" 用法4 比如第一步先检索出position是2的所有对象,然后再根据name降序排列等等 Subject.where("position=?","2").order("name desc") => [#<Subject id: 2, created_at: "2012-10-20 06:25:27", updated_at: "2012-10-20 15:10:36", name: "Second Subject", posit ion: "2">, #<Subject id: 4,