Qt天气项目
一、项目的创建以及基础工作的准备
1.设置窗口的背景图片的添加
2.标签的设置
3.窗口中线条的设置
4.窗口高度以及宽度的设置
5.使用代码设置窗口的部分属性
setWindowFlag(Qt::FramelessWindowHint);
设置窗口为没有边框,没有标题栏
setFixedSize(width(),height());
设置窗口为固定的大小,也就是使用自己设置的大小,用户不能修改窗口大小
总结:
1 创建项目时选择QWidget
2 Ui设置时使用部件Widget将这个窗口覆盖
3 添加关于天气的资源文件,包括背景图片、天气变化时需要的icon,比如大雨、小雨、天晴等
二、关闭窗口以及拖动窗口
1.关闭窗口
exitMenu=new QMenu(this);
exitAct=new QAction(this);
exitAct->setText(u8"退出");
exitAct->setIcon(QIcon(":/weatherIco/close.ico"));
exitMenu->addAction(exitAct); connect(exitAct,SIGNAL(triggered(bool)),this,SLOT(slot_exitApp()));
1 因为窗口上不需要多余的按钮,所以就设置一个可以弹出的菜单来实现窗口的退出功能
2 创建菜单对象和动作的对象
3 设置退出菜单的名称以及绑定图标
4 将动作添加到菜单对象上
5 将右键点击作为信号,发出者为exitAct,槽时应用程序窗口,槽要实现的功能时退出
6 实现槽函数
qApp->exit(0);
但要注意的是声明的时候应该是私有的,一般槽函数都是私有的( private slots: )
2.拖动窗口
mPos=event->globalPos()-this->pos();
mPos是一个成员变量,类型为QPoint
move(event->globalPos()-mPos);
总结:
1 关闭和拖动都涉及到了鼠标事件,所以首先要处理鼠标事件
exitMenu->exec(QCursor::pos());
event->accept();
上两行代码分析:调用QMenu类中的exec函数将鼠标定位到当前的位置,并对这个接收到的标志进行设置
2 拖动窗口代码的分析:将全局坐标也就是相当于鼠标所在的坐标减去窗口的坐标,得到一个差值
3 鼠标移动到另一个位置的时候,再用这个位置的全局坐标减去所得到的差值,再次得到一个差值,这个差值就是窗口所需要移动的距离
三、基础控件添加和网格布局
1.控件的添加
上面的是网格布局的控件以及添加以后的效果
这是标签的控件以及效果,但要注意的是两个标签之间的合并,两个标签之间合并的时候另一个标签里面不要由内容