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); 

窗口的最大化按钮将变得不可用。

Qt 常用函数 (一)

 

设置背景图片

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); // 无限循环