Qt 常用函数 (一)
Qt的优势
Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。
优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。
丰富的 API
Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。
支持 2D/3D 图形渲染,支持 OpenGL;大量的开发文档;XML 支持。
常用函数(一)
设置窗体大小
① 设置它的最大窗口值和最小窗口值,并且使最大值和最小值相等。
简单的示例: setMinimumSize(370, 150); setMaximumSize(370, 150);
此时窗口大小便被固定为(370,150)。
② 使用setFixedSize(),这样一句话就可以解决问题。
简单的示例: setFixedSize(365,240);
窗口的最大化按钮将变得不可用。
设置背景图片
QPalette的方法、setStyleSheet方法、paintEvent事件方法
学习链接:https://blog.****.net/u012640973/article/details/78692004
随机时间
int rand = 0;
qsrand(QTime(0,0,0).secsTo(QTime::currentTime())); //以0时0分0秒到现在的秒数为种子, 调用全局的qrand()函数生成随机数
rand = qrand()%10000; //对10000取余,保证位于10000的范围内
鼠标相关
void mouseMoveEvent ( QMouseEvent * e );
void mousePressEvent ( QMouseEvent * e );
void mouseReleaseEvent ( QMouseEvent * e );
void mouseDoubleClickEvent( QMouseEvent * e ); // 鼠标移动事件, 默认是按下移动才启动事件
void Widget::mouseMoveEvent(QMouseEvent *e) // 事件函数名字必须这样,不能改变,因为这个是虚函数
ui->label->setText("("+QString::number(e->x())+","+QString::number(e->y())+")"); // 显示其坐标
// 要想不需要按下移动,也能启动事件,在构造函数里加下面的函数
this->setMouseTracking(true); // 鼠标点击事件
void Widget::mousePressEvent(QMouseEvent *e) QString s="";
if(e->button()==Qt::LeftButton) // 左击 { s = "LeftButton Pressed\n"; }
if(e->button()==Qt::RightButton) // 右击
{ s = "RightButton Pressed\n"; }
if(e->button()==Qt::MidButton) // 中间滑轮点击
{ s = "MidButton Pressed\n"; } // 鼠标释放事件,操作和点击一样
void Widget::mouseReleaseEvent(QMouseEvent *e) // 滑轮滚动事件
void Widget::wheelEvent(QWheelEvent *e) QString s;
if(e->orientation()== Qt::Vertical) // 判断滚轮是否垂直滚动
{ if(e->delta()>0) // 大于0为滚轮向上
s += " go (head)";
else // 小于0即为向下
s += " go (back)"; }
设置动画
movie = new QMovie;
movie->setFileName("../image/boy.gif"); // 设置gif动画,“……”为图片路径 // 或者QMovie *movie = new QMovie("../boom.gif");
ui->label->setScaledContents(true); // 自适应大小
ui->label->setMovie(movie); // 在label设置动画
movie->start(); // 开启动画
播放音乐
// 一种方法
QSound::play("mysounds/bells.wav");
// 另一种方法
QSound bells("mysounds/bells.wav");
bells.play();
// 也就是说
QSound *bells = new QSound("mysounds/bells.wav");
bells->play();
bells->setLoops(-1); // 无限循环