您的位置:首页 > 编程语言 > Qt开发

一只菜鸟的Qt学习路程(QList的使用以及LNK1196错误)

2015-01-21 20:37 204 查看
这两天我把软件的主界面弄完了,很简单的一个小测试应用。主界面如下图。



左侧的黑框就是Led显示区,右侧就是按钮和显示区,左边的Led显示区是一个8*8的QLabel的标签。右边是9个QPushButton,跟上次一样建立connect。

左侧的Led需要讲一点,就是8*8的小标签,每个都需要在程序中动态的获取,我头疼了好久,最后发现是因为大小写写错了,我发现Qt设计师命名的对象都是用小写的,label_1之类。然后用findChild(labname)就可以获取到,然后SetPixmap就可以了。

这两天用的最多的当属QList了。也有了一些了解,记录如下:

1、QList是一个模版类,可以很方便的用于大部分数据。刚开始头疼9个二维数组怎么存储,后来定义了一个结构体,然后初始化就可以了,C++中结构体初始化是依次赋值的,如下代码:

struct datas//存储数据的结构体
{
public:
<span style="white-space:pre">	</span>int idata[8][8];//里面有一个8*8的二维数组
};
datas data_1 =
{
0,0,0,0,0,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,1,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,1,1,0,0,
0,0,0,0,0,0,0,0
};
然后把datas当作模版放进QList就可以了。

2、由于QList是一个顺序组,所以可以直接使用下标访问,那个函数就是at(int l),另外QList重载了很多操作符,可以方便的向里面存储数据,比如Data<<data_1,如下:

mdata<<data_1<<data_2<<data_3<<data_4<<data_5<<data_6<<data_7<<data_8<<data_9;
3、QList中的TakeAt(int)函数是将表中的第n个元素取出来,也就是说运行之后表中会少一个元素。

今天还遇到了一个让我不知所措的错误,就是LNK1169,我把Led显示屏的字模数据存储在Data.h文件中,也加了防止多次编译的预编译指令,但就是一个跟我说有个变量和一个函数重定义了。我尝试更换头文件引用次序也无效,百度之后发现了一篇CSDN博客,看后是因为我把全局变量和全局函数放在了头文件中,应该放进cpp文件中。博文地址如下fatal
error LNK1169: 找到一个或多个多重定义的符号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐