Qt 常用函数 (一)

    科技2022-07-13  139

    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.csdn.net/u012640973/article/details/78692004

     

    随机时间

    int rand = 0; qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));      //以0时0分0秒到现在的秒数为种子, 调用全局的qrand()函数生成随机数 rand = qrand()000;           //对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); // 无限循环

     

    Processed: 0.010, SQL: 8