1.展示区
2.核心代码区
//标签显示文字示例
lb_text = new QLabel("我是文字");
lb_text->setAlignment(Qt::AlignCenter); //设置对齐方式
//标签显示图片示例
lb_pix = new QLabel("我是图片");
lb_pix->setScaledContents(true); //设置标签自动缩放上面的图片
lb_pix->setPixmap(QPixmap("1.jpg")); //标签显示图片
lb_pix->setFixedSize(200, 120);
//标签显示动画示例
lb_gif = new QLabel;
lb_gif->setFixedSize(200, 120);
lb_gif->setScaledContents(true);
lb_gif->setAlignment(Qt::AlignCenter);
QMovie *m = new QMovie("1.gif"); //标签显示动画
lb_gif->setMovie(m);
m->start();
//文本浏览器显示html文本
tb_test = new QTextBrowser;
tb_test->setHtml("<!DOCTYPE html>\
<html>\
<head>\
<meta charset=\"utf-8\">\
<title>菜鸟教程(runoob.com)</title>\
</head>\
<body>\
<h1>我的第一个标题</h1>\
<p>我的第一个段落。</p>\
</body>\
</html>");
//7段数码管显示示例
lcd_test = new QLCDNumber;
lcd_test->setDigitCount(20);
lcd_test->setMinimumSize(400, 100);
lcd_test->display(1234);
//日历示例
cl_test = new QCalendarWidget ;
connect(cl_test, &QCalendarWidget::clicked, [&](QDate x){
qDebug() << x;
lcd_test->display(x.toString());
});
//进度条示例
pbr_test = new QProgressBar;
//pbr_test->setValue(60);
QTimer *t = new QTimer; //定时器类
connect(t, &QTimer::timeout, [&](){ //捕获定时器timeout信号
static int x = 0;
pbr_test->setValue(x++); //在进度条上显示一个数据
lcd_test->display(x); //在7段数码管上显示一个数据
});
t->start(100); //开启定时器(周期性的产生timeout信号)
//布局
QVBoxLayout *vbox1 = new QVBoxLayout;
vbox1->addWidget(lb_text);
vbox1->addWidget(lb_pix);
vbox1->addWidget(lb_gif);
vbox1->addWidget(tb_test);
QVBoxLayout *vbox2 = new QVBoxLayout;
vbox2->addWidget(lcd_test);
vbox2->addWidget(pbr_test);
vbox2->addWidget(cl_test);
vbox2->addStretch();
QHBoxLayout *mainbox = new QHBoxLayout;
mainbox->addLayout(vbox1);
mainbox->addLayout(vbox2);
setLayout(mainbox);