接着上一个博客。首先我们建立了一个"Test"项目。
目录
在vs中 qt工程的解决方案的项目文件布局
qrc文件
Qt5中防止中文乱码
接着在界面上动态显示当前时间
Qt按钮根据不同状态显示不同背景
如图一所示,为
①"Form Files":存放ui文件,双击ui文件,可以直接进入到Qt Designer进行界面设计,也可以右键将ui文件删除。
②"Resource Files":存放qrc文件,双击qrc文件,如图二所示:
如图二所示,点击"Add"将我们所需要的文件添加到其中,在以后当我们要用到该文件时,只需要去引用其地址啦。比如我们先添加一些照片进去以便后面使用。
图3如图3所示,进行文件的选取,有时候如果发现文件夹中明明有图片,但是在图3选取时却找不到。那么只需要把图片的地址复制到选取框中即可,点击"打开"即可。
图4如图4所示,将名为“ico.png”的图片添加到qrc中,最后记得点击左上角的保存按钮。
接着就可以来使用qrc中提及的图片了,如下,设置图标。
图5如图5所示,图标便变成了爱心,设置代码如下,记得#include <QIcon>:
this->setWindowIcon(QIcon(":/Test/Resources/ico.png"));QIcon里的参数为图片的路径,是从qrc文件里复制过来的。
设置背景,并将窗体大小设成和图片一样,如下:
QPixmap pixmap(":/Test/Resources/background.jpg"); //先填宽度,再填高度 this->setMaximumSize(QSize(pixmap.width(),pixmap.height())); this->setMinimumSize(QSize(pixmap.width(),pixmap.height())); QPalette palette = this->palette(); palette.setBrush(QPalette::Window, QBrush(pixmap)); this->setPalette(palette);使用上面代码有时候却发现设置的窗体会比原图片大,不知道为啥哈啊哈~~~
注意Qlabel *mlabel; 若定义成Qlabel mlabel; 则在mlabel = new QLabel(this);会报错。如下:
Qlabel *mlabel; mlabel = new QLabel(this); mlabel->setText(QString::fromLocal8Bit("祝君安康")); // mlabel->setText("祝君安康"); 图6如果直接mlabel->setText("祝君安康");那么就可能乱码,如下:
图6-1如图6所示,经过上面设置后,文字初始位置在左上角,再如下,对label 设置颜色、粗细和大小。进行设置,如图7所示。
mlabel->move(80, 80);//初始位置在左上角,将其移动到(80,80)的位置 //设置颜色、粗细和大小。注意 font-size 中间不是下划线 mlabel->setStyleSheet("color:rgb(144,3,134);font:bold;font-size:15px"); 图7注意下面这一行代码。
//获取时间格式为 "年.月.日 时:分:秒 星期" QString sCurTime = curTime.toString("yyyy.MM.dd hh:mm:ss ddd");注意时间的格式,年月日用点隔开,时分秒用冒号隔开,然后他们之间用空格隔开,注意月用大写的"MM",而分用小写的"mm"。他们是通过大小写来区分的。一定要注意时间的格式,不然到时候显示时可能会有些错误。运行结果如下:
图8 图9如图8、图9所示,中下方的绿色部分的时间就在动态变化~~~
如图10、11设置了两个按钮的样式,将鼠标悬浮在登录按钮上,它的背景颜色就会改变,如图11所示。另外注意setStyleSheet的两种设置方法对应两个按钮。详情可见上面代码中的注释。