主要学习资料是《GUI-QT4》和《QT学习之路》,对其中学习过的知识进行总结。这里我主要记录自己的码代码的学习过程,方便自己以后的查找和学习。
QT中的UI设计主要有两种,码代码的形式和designer画出来的形式。
一、信号槽
1、信号槽的格式
目前我学到的Qt4系列中,只知道一种: connect ( A , SIGNAL(xxx) , B ,SLOT(xxxxx) );
2、自定义信号槽
虽然Qt中提供了常用的信号和槽,但我们也需要定义自己的信号与槽。必须保证发送者和接受者都是QObject的子类。
信号:signal : void Newspaper() ; 这样就定义了一个Neswpaper的信号。
槽 :public slots : void ReceiveNewspaper() ; 这样就定义了一个ReceiveNewspaper的槽,当然可以给槽写具体的执行函数。
链接:套用信号槽的格式connect就行。
注: emit Newspaper 表示触发Newspaper信号。
二、MainWindow
主要是菜单栏(menu),工具栏(tool),状态栏(status)的建立过程。
1、添加动作Action(以openAction为例)
openAction =new QAction(tr("&Open"),this); // 命名
openAction->setIcon(QIcon(":/images/open")); //添加资源图标
openAction->setShortcut(QKeySequence::Open); //添加快捷键
openAction->setStatusTip(tr("Open a existing spreadsheet file")); //添加状态栏显示
2、创建菜单栏
fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(openAction);
3、创建工具栏
fileToolBar = addToolBar(tr("&File"));
fileToolBar->addAction(openAction);
4、创建状态栏
statusBar();
5、资源文件
新建“Qt资源文件”后,添加需要的图片即可。
三、布局
布局目前使用到的主要有QHBoxLayout(水平),QVBoxLayout(垂直),QGridLayout(网格)。每个layout都可以相互组合,形成更大的layout,用法是
MainLayout->addLayout(leftlayout),把leftlayout加入到MainLayout中
1、 QHBoxLayout基本用法
layout = new QHBoxLayout;
layout->addWidget(xxx);
SetLayout(layout);
2、QGridLayout基本用法
layout = new QGridLayout;
layout->addWidget(A,0,0); //A放在第一行第一列
layout->addWidget(b,0,1); //B放在第一行第二列