纸飞机的故事,那些安城的少年和姑娘
分类:技术

阿瑶发了喜贴给我,我才知道她要结婚了。

安城旧事

  Qt 有许多模块,如 Core、GUI、Widgets、WebEngine、QML等。其中 Charts 模块,包含了一系列有关图表的组件,使用的是 Qt 的 Graphics View 框架,该模块以前只在商业版中才有。

婚礼那天,我和晨子轩一起去参加婚礼,才知道原来阿瑶的婚礼很大,甚至还请了小型的乐队在草坪上演奏,酒宴中央放着一条玫红色的地毯,天花板上的水晶灯洒下晶灿光影。我一脸诧异地扯过子轩的胳膊,经询问才知道,原来阿瑶的丈夫对象是广告公司的老总,还是搞婚庆的,对待自己的婚礼自然马虎不得,就当作给自己的婚庆公司做宣传了。

这年夏天的闷热征兆自周叔死时初显端倪,后来陆晚走的那几天我一厢情愿地期望降几场稀里哗啦的瓢泼大雨,然而并没有。

  从 Qt 5.7 开始,该模块通过 GPLv3 许可,已经对 Qt 开源版开放使用。

我点点头,转头望向旁边的女生们,无不例外地,全都花痴地看着这梦幻般的婚礼,有的在幻想自己的婚礼也能有如此的豪华,有的则拧紧身边丈夫的耳朵,埋怨他当初的婚礼太过寒酸。

入夜我在阴沉的阁楼沿街眺望,数着燃起的街灯,双脚踟蹰在陈木地板上,蹍碎床前明月光,弹下的烟灰却似地上霜,在泛着杂光的老木地板上乌障障地沉积着,我面向西窗望眼欲穿,紧握着手机,捏着陆晚的号码,像是捏住了满街的灯火阑珊,一溜儿的月满西楼。

1  饼图 (pie chart)

“你也该知道阿瑶的丈夫在做什么的吧。”晨子轩埋怨了我一声。

每一个这样的夜晚,都像一场大梦初醒的长途跋涉。“你的酒杯空了,人却沉醉不醒。”周伍说。

1.1  Charts 模块

  .pro 中添加如下语句:

QT  += charts

  头文件和命名空间

#include <QtCharts>

using namespace QtCharts;

的确,是我该知道的,只是当时看到喜贴时脑里一片空白,根本没有想要问下一句的心情。

他从黑夜的幕布里走出,穿越星星点点的稀薄路灯恰似自满天繁星中走入阁楼。自周叔逝世他已许久未踏足这里。我斜他一眼,掏出烟盒扔过去。周伍一把抓住,冲我露出读书时小痞子模样的笑。

1.2  代码示例

此时,在众人的喧哗中,穿着抹胸婚纱的阿瑶缓缓到场,当她漫步走在玫红色的地毯时,身后的婚童们撒下玫瑰花雨,我竟一下看得呆了。

“你生意还好?”我揉了揉眼,装模作样地问他。

1) 头文件

  Qt  中实现饼图的例程,主要使用了 QPieSeries + QPieSlice + QChart + QChartView 这四个类,如下所示: #1 ~ #5 声明了头文件

1 #include <QtWidgets/QApplication>
2 #include <QtWidgets/QMainWindow>
3 #include <QtCharts/QChartView>
4 #include <QtCharts/QPieSeries>
5 #include <QtCharts/QPieSlice>
6 
7 using namespace QtCharts;

  实际上也可用两个头文件代替:

#include <QtWidgets>
#include <QtCharts>

婚礼宣誓结束后,我们一起在酒桌里把酒言欢,按照当地的规矩,新郎新娘都得每一桌去敬酒,尽管事先往自己的酒杯里倒进加多宝,但还是被阴险的亲戚好友们认了出来,示意他们俩彼此交换一下酒杯,结果新郎掩饰不住,只好硬着头皮地喝下一杯杯红酒,脸颊比杯里的酒还要红。

“不咋地,最近城里在建文明城市,清查得厉害。”周伍叼着根利群,无精打采地扫我一眼,紧接着他神色凝重了些,开口唤我:“怎么了,青子?”

2) QPieSeries 类

#13 ~ #16 新建 QPieSeries 类指针,并将其分为三份,各占 10%,20% 和 70%;#17 设置标签属性,使其可见;

 9 int main(int argc, char *argv[])
10 {
11     QApplication a(argc, argv);
12 
13     QPieSeries *series = new QPieSeries();
14     series->append("10%", 1);
15     series->append("20%", 2);
16     series->append("70%", 7);
17     series->setLabelsVisible();

轮到我这边时,阿瑶事先让我们不要为难她老公,我们点点头,她老公估计是喝懵了,看到我旁边有个座位,就坐在我身边暂时休息一会,为了避免尴尬,他问我和晨子轩说:“你们是怎么认识阿瑶的?”

“没事。”

3) QPieSlice 类

  #19 ~ #24 使用 QPieSlice 设置每一份的颜色,分别为:红、绿、蓝;

19     QPieSlice *slice_red = series->slices().at(0);
20     QPieSlice *slice_green = series->slices().at(1);
21     QPieSlice *slice_blue = series->slices().at(2);
22     slice_red->setColor(QColor(255,0,0,255));
23     slice_green->setColor(QColor(0,255,0,255));
24     slice_blue->setColor(QColor(0,0,255,255));

“我们啊,是青梅竹马。”阿瑶说。

“你那小女朋友呢?”

4) QChart  和 QChartView

  #26 ~ #29 新建 QChart 类指针,并将 series 添加到 chart 中,然后设置标题和隐藏图例;

  #31 ~ #32 新建 QChartView 类指针,然后将 chart 添加到 chartview 中,设置其渲染属性为 “抗混叠” (QPainter::Antialiasing);

  #34 ~ #37 新建 QMainWindow 类对象,并将 chartview 置于中间 (setCentralWidget() 函数),然后重设其大小,并 show() 出来。

26     QChart *chart = new QChart();
27     chart->addSeries(series);
28     chart->setTitle("PieChart Example");
29     chart->legend()->hide();
30 
31     QChartView *chartview = new QChartView(chart);
32     chartview->setRenderHint(QPainter::Antialiasing);
33 
34     QMainWindow window;
35     window.setCentralWidget(chartview);
36     window.resize(480, 360);
37     window.show();
38 
39     return a.exec();
40 }

   输出如下:

  图片 1

“是啊,很小的时候了,大概读幼儿园的时间吧。”晨子轩回忆道。

“走了。”

2  圆环图 (donut chart)

  #4 用的是 Qt 中的命名空间声明,等效于 using namespace QtCharts

  圆环图中间有空,对应 #11,设置了中间孔的尺寸大小;另外,#21 设置了圆环图的显示主题,#22 设置的是图例的字体;其它代码,饼图的大同小异。

 1 #include <QtWidgets>
 2 #include <QtCharts>
 3 
 4 QT_CHARTS_USE_NAMESPACE
 5 
 6 int main(int argc, char *argv[])
 7 {
 8     QApplication a(argc, argv);
 9 
10     QPieSeries *series = new QPieSeries();
11     series->setHoleSize(0.35);
12     series->append("Protein 4.2%", 4.2);
13     series->append("Carbs 56.4%", 56.4);
14     series->append("Other 23.8%", 23.8);
15 
16     QChartView *chartView = new QChartView();
17     chartView->setRenderHint(QPainter::Antialiasing);
18     chartView->chart()->setTitle("DonutChart Example");
19     chartView->chart()->addSeries(series);
20     chartView->chart()->legend()->setAlignment(Qt::AlignBottom);
21     chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);
22     chartView->chart()->legend()->setFont(QFont("Arial", 7));
23 
24     QMainWindow window;
25     window.setCentralWidget(chartView);
26     window.resize(400, 300);
27     window.show();
28 
29     return a.exec();
30 }

   输出界面如下:

    图片 2

 

“确切地说,我们是扔纸飞机时认识的。”我说。

周伍不置可否的笑笑,沉默片刻才说出之前的那句话。然后他拍拍我的肩,慢条斯理地劝我:“我知道你现在心里不好受。但你要知道,这男男女女,不就那么回事么……千百年前啊,诗仙李白就曾写过类似的诗,醒时相交欢,醉后各分散……”

参考资料:

  Qt 5.8 | Qt Charts | Qt Charts Examples | PieChart Example

 

“扔纸飞机?”

我看他说得起劲,没好意思指正他的引用错误。我想这货语文真烂,套用今天的话说,他的语文老师肯定死的很早,后来一想我们的语文是同一个老师教的。真是丢脸。

阿瑶老公带着疑问,我说道:“是啊,当时我在公园里玩滑梯,由于那滑梯让我玩腻了,就到处溜达,想找些好玩的事情做。当时,我看到阿瑶和子轩在玩纸飞机,就凑过去,对他们喊,折错了,纸飞机不能这样折的,这样是飞不远的。”

周伍看我若有所思,继续马不停蹄地开导我:“这种时候,你就应该听哥哥的。明儿晚上我请你喝酒去,我这有一刚入行的小姑娘,正想让你见见。”

阿瑶恍然大悟地说:“对对对,我想起来了,当时我和子轩很不服气,觉得纸飞机就是这样折的啊,还能怎么折啊,于是阿龙就一副很拽的模样走过来,拿着我们刚折的纸飞机说,看,让你见识一下什么才是真正的纸飞机。说完,阿龙就把纸摊开,把飞机头压扁,然后折进里面去,随后,他把刚折好的纸飞机往空中用力一掷,果真飞得越高越远。”

他的眼睛骨碌碌直转,流转着不怀好意又怡然自得的龌龊亮光。

阿瑶在茶几上找到一张宣传单,照着童年的模样两三下就折了出来,然后对她的老公说:“看,这纸飞机的飞机头是这样的,很酷吧。”

自从周伍少年断指从天津归来,满心迷茫地徘徊过一段日子。后来不知在哪些狐朋狗友的建议下,奔来与我们故乡相隔不远的安城,重拾三教九流,在二环路给家夜夜笙歌的店看场子,那地方挂着洗浴的招牌,卖的什么我俩心知肚明。

“的确。”阿瑶老公发出赞赏的表情。阿瑶继续说道:“后来,我们一起在公园里折纸飞机,阿龙这家伙,连战斗机和滑翔机都折得出来,他对飞机一直情有独衷,连学的专业,也是北航的飞机工程,和他一比,我和晨子轩都逊毙了。”

我说我不去,你个没出息的早知道你做这个我都不想认识你。

本文由奥门金沙网址发布于技术,转载请注明出处:纸飞机的故事,那些安城的少年和姑娘

上一篇:给17及以后考研的学弟学妹的建议,如何迎接新的 下一篇:教师请先,孔子在哲学上的真正贡献是什么
猜你喜欢
热门排行
精彩图文