当前位置: 首页 > news >正文

潍坊优化网站排名怎么做电商网站

潍坊优化网站排名,怎么做电商网站,免费创建社区论坛网站,建设网站0基础需要学什么QLabel QLabel有如下核心属性&#xff1a; 关于文本格式的验证&#xff1a; 其中<b>xxx<b>&#xff0c;就是加粗的意思。 效果&#xff1a; 或者再把它改为markdown形式的&#xff1a; 在markd中&#xff0c;#就是表示一级标题&#xff0c;我们在加上##后&#x…

QLabel

QLabel有如下核心属性:

关于文本格式的验证:

其中<b>xxx<b>,就是加粗的意思。

效果:

或者再把它改为markdown形式的:

在markd中,#就是表示一级标题,我们在加上##后,演示效果:
 

显示图片

先找到一张图片,然后将label设置的和窗口一样大,然后再将图片设置到label中

 演示效果:

但是由于图片本身的大小不一定跟窗口一样大,因此我们可以进行一个缩放:

使用

ui->label->setScaledContents(true); // 设置内容缩放

虽然有点惊悚。

但是我们拖动窗口的边框,使其进行缩放:

我们发现多出来的部分,我们的图片并不会进行补齐,也就是不会随着窗口大小的改变而同步的发生改变。

这里就简单说下Qt的事件:

Qt中,表示用户的操作有两类概念,一个是信号,另一个是事件。

当用户拖拽窗口修改窗口大小时,就会触发resize事件(resizeevent)

像resize这样的事件,它是连续变化的。

为了让我们的图片能够跟着窗口的大小的改变而同步变化,我们可以在Widget中重写它的父类QWidget中的resizeevent虚函数。

当我们鼠标拖动窗口改变大小时,这个虚函数就会被反复调用执行。

 

其中,这里有一个形参,可以通过它获取到当前窗口的大小,非常有用。

注意:

此处的 resizeEvent 函数我们没有⼿动调⽤, 但是能在窗⼝⼤⼩变化时被⾃动调⽤.
这个过程就是依赖 C++ 中的多态来实现的. Qt 框架内部管理着 QWidget 对象表⽰咱们的窗
⼝. 在窗⼝⼤⼩发⽣改变时, Qt 就会⾃动调⽤ resizeEvent 函数.
但是由于实际上这个表⽰窗⼝的并⾮是 QWidget, ⽽是 QWidget 的⼦类, 也就是咱们⾃⼰写
的 Widget. 此时虽然是通过⽗类调⽤函数, 但是实际上执⾏的是⼦类的函数(也就是我们重写
后的 resizeEvent ).
此处属于是 多态 机制的⼀种经典⽤法. 通过上述过程, 就可以把⾃定义的代码, 插⼊到框架内
部执⾏. 相当于 "注册回调函数"

⽂本对⻬, ⾃动换⾏, 缩进, 边距 

QLabel的父类,QFrame,它有一个属性 frameShape,它可以设置边框:
比如这里的Box:

 接下来,我们对这四个QLabel分别设置对齐,自动换行,缩进,边距。

文本对齐:

自动换行:
 演示:

 缩进:

边距:

设置伙伴

1) 创建两个 label 和 两个 radioButton

Qt的中QLabel中的文本是可以指定快捷键的,但是它这里的快捷键规则比QPushButton弱很多。

它是在文本中 & + 一个字符 来表示快捷键

比如 &A  就表示需要键盘上的:alt + A

&B 则:alt + B。

在绑定了伙伴关系后,就可以通过快捷键来选中对应的单选/复选按钮。

 设置伙伴关系:

演示:

QLCDNumber 

一些核心属性:

 

设计一个10秒倒计时 

实现这个功能的关键:我们得先有一个能周期性触发的定时器。

在Qt中,有一个QTimer类,它的对象我们可以设定一个触发timeout信号的周期时间。

在C++标准库中,没有提供定时器的功能,在boost库中提供了。

代码:

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->lcdNumber->display(10);timer = new QTimer(this);// 不要在构造函数中就开始,因为此时的Widget还在构造connect(timer,&QTimer::timeout,this,&Widget::handler); // 进行槽函数的连接
}Widget::~Widget()
{delete ui;
}void Widget::handler()
{int val = ui->lcdNumber->intValue();--val;ui->lcdNumber->display(val);if(val <= 0){// 倒计时就结束了timer->stop();}
}void Widget::on_pushButton_clicked()
{ui->lcdNumber->display(10);timer->start(1000); // 每隔1000ms触发一次
}

效果:

 

 注意:

我们也可以通过一个循环 + sleep的方式达到倒计时的效果,但是不能把实现放在构造函数中,因为此时Widget还没构造出来。

在Qt中,维护界面的更新是专门由一个线程去进行的(就是我们的main函数所在的主线程)

对于GUI来说,内部包含了很多的隐藏状态,Qt为了保证修改界面的过程中,不会触发线程安全问题,Qt禁止了其它线程修改界面。

这样的约定主要是因为 GUI 中的状态往往是牵⼀发动全⾝的, 修改⼀个地⽅, 就需要同步的对
其他内容进⾏调整.
⽐如调整了某个元素的尺⼨, 就可能影响到内部的⽂字位置, 或者其他元素的位置. 这⾥⼀连串
的修改, 都是需要按照⼀定的顺序来完成的.
由于多线程执⾏的顺序⽆法保障, 因此 Qt 从根本上禁⽌了其他线程修改 GUI 状态, 避免后续的
⼀系列问题

 

就算是用QTimer这样也还是不要在构造函数中就开始比较好,因为如果构造函数比较大时,我们同样不好把控。

 

综上,使用定时器是最合理的方案。

QProgressBar 

 我们可以使用QProgressBar 来表示一个进度条。

它的一些核心属性:

 

 这里的思路跟刚刚的倒计时差不多。

不过这里再扩展一个细节:
关于QTimer这个类,我们在widget.h这个头文件中,我们是没有包含 QTimer这个头文件的。

但是我们依旧可以把它声明出来

而我们一旦要使用这个类,比如实例化对象,调用方法,就必须要包含头文件了:
 

这是因为C/C++程序的编译速度横向对比Java Python这样的语言是很慢的,原因就是C++的include

只要尽量减少include头文件的个数,就能有效减少编译时间。因此在Qt中,每次创建时,都会在widget.h中默认给我们包含了一个头文件,这个头文件中就前置声明了Qt中的所有内置类,这样就能减少头文件包含。

 

修改进度条的颜色 

修改颜色,同样可以使用QWidget 的 styleSheet 属性

在右侧编辑栏下:

 

将其修改为:

QProgressBar::chunk {background-color: #FF0000;}

 

 修改完后:

不过我们发现了一个问题,那就是我们的数字在修改完后就跑到左上角去了。

 因此需要QProcessBar alignment 属性设置为垂直⽔平居中

 

现在就好了:
 

QCalendarWidget 

 QCalendarWidget 可以表示一个日历

核心属性:
 

还有一些重要的信号:

 

 

 

http://www.yayakq.cn/news/651680/

相关文章:

  • wordpress插件安装教程视频seo为什么要进行外部优化
  • 毕业设计题网站开发信息最全的网站
  • dedecms 网站迁移百度指数可以查询多长时间的
  • 大连做网站优化软件专业
  • wordpress新闻小程序六盘水seo
  • 西部数码网站管理助手破解版福州做网站优化
  • 怎么在公司网站上安装百度商桥中山市交通建设发展集团网站
  • 喀什建设局网站丽水山耕品牌建设网站
  • 自己做的美食分享到网站企业邮箱申请注册
  • 建设旅游信息网站的好处国家企业信用公示系统官网(全国)
  • php网站建设到护卫神恶意点击别人的网站
  • 建筑网建设通网站作用成都网络运营外包
  • 企业网站推广 知乎做网站要坚持
  • 展示型企业网站设计方案微信公众号商城制作
  • 2018网站外链怎么做浙江工程信息网
  • 公司要建个网站杭州网站制作报价
  • 深圳燃气公司是国企吗贵州网站seo
  • wordpress插件 网站游戏网站模板源码
  • 番禺区怎么做网站建设国内 虚拟主机
  • 公司网站维护内容国内代理ip免费安卓
  • 网站建设w亿玛酷1流量订制仙游网站建设
  • 有了源码然后如何做网站网络服务许可证
  • 企业网站的建立济南外贸网站建站
  • 济南哪个公司做网站好网站聚合页面怎么做
  • php怎么做网站程序网站备案注销原因
  • 花乡科技园区网站建设系统开发应注重对反洗钱系统进行运行维护和统一管理
  • 网站群信息管理系统wordpress加下载链接
  • html做的网站图片横着摆放奔驰宝马游戏网站建设
  • 重庆seo整站优化报价建购物网站需要些什么
  • 东城东莞网站建设学校网站用途