Qt控件使用方法技巧合集

Qt控件使用方法技巧合集


         ~~~~~~~~         本篇博客代码示例包含C++版本和Python版本,不管是哪个版本,Qt的API都是一样的,使用方式大同小异。



1、QTextEdit设置背景色和文本颜色
    // 设置QTextEdit背景和字体颜色
    QPalette pl = ui->textEdit->palette();     // 获取textEdit的调色板
    pl.setColor(QPalette::Base, Qt::black);    // 设置背景色为黑色
    pl.setColor(QPalette::Text, Qt::green);    // 设置文本颜色为绿色
    ui->textEdit->setPalette(pl);              // 设置回调色板
2、QMessageBox的使用

https://blog.csdn.net/qq153471503/article/details/123423876

3、QComboBox点击事件更新列表

https://blog.csdn.net/qq153471503/article/details/123422722

4、QTabelView的使用

https://blog.csdn.net/qq153471503/article/details/123423931

5、Qt关于QDialog右上角显示?按钮不显示最大化、最小化按钮问题

https://blog.csdn.net/qq153471503/article/details/123424043

6、配置文件QSettings的使用

https://blog.csdn.net/qq153471503/article/details/123424118

7、获取各种路径

获取exe应用程序路径:

QString dir = QCoreApplication::applicationDirPath();

获取当前工作目录:

QString dir = QDir::currentPath();
8、QLineEdit

1、限制只能输入数字和字母

QRegExp regx("[a-zA-Z0-9]+$");
QValidator *validator = new QRegExpValidator(regx, lined);
lined->setValidator(validator);

2、显示最大输入长度为10:

lined->setMaxLength(10);

注意:这个输入长度只是限制的字符个数,例如10就是限制输出10个汉字或者10个ASCII字符,或者混合。

3、设置占位符文本

ui->lineEdit->setPlaceholderText(tr("请在此处输入文本"));
9、Qt字符串QStrings类使用详解

QString的使用是比较简单的,这里只讲格式化操作的API。

格式化函数arg示例:

    QString str(tr("%1 %2 %3 %4").arg(1).arg("hello").arg(3).arg("world"));
    qDebug() << str;  // 这里输出:"1 hello 3 world"

使用%N的方式确定是哪一个参数,arg最大只能支持10个。

还有一个是静态函数:QString::asprintf(),这个函数跟C语言的sprintf函数是一样的。

10、调试打印输出QDebug使用详解

使用qDebug可以将调试信息输出到控制台上,该函数使用方式有两种:

  1. 将字符串参数给qDebug,例如qDebug("test");,这种使用方法可以不用添加头文件#include<QDebug>,并且这种使用方式是支持格式化打印的,例如:qDebug("count = %d", count);,这种使用方式类似C语言的printf。
  2. 使用流式输出多字符串,例如qDebug() << "test" << "time";,这种使用方式需要添加头文件#include<QDebug>

补充:当使用release进行最终打包发布时,如果想要显示控制台输出,可以在.pro文件中添加一行CONFIG += console,然后在这里勾选Run in terminal

11、调起窗口的QFileDialog类使用详解

该类的静态函数如下:

比较常用的三个:

  • getOpenFileName:获得打开的文件名
  • getOpenFileNames:获得多选打开的文件名
  • getSaveFileName:获得保存文件名
12、文件读写QFile使用详解

1、文本读写

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile file("D:/test.txt");
    if(!file.isOpen())
    {
        if(!file.open(QFile::ReadWrite))
        {
            return a.exec();
        }
    }

    file.write("hellworld");

    file.seek(0);

    QByteArray data = file.readAll();

    qDebug() << data;

    return a.exec();
}

2、二进制文件读写

读写二进制文件需要用到QDataStream,示例代码如下:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile file("D:/test.bin");
    if(!file.isOpen())
    {
        if(!file.open(QFile::ReadWrite))
        {
            qDebug() << "文件打开失败!";
            return a.exec();
        }
    }

    char buf[] = {0X61,0X62,0X63,0X64};
    char readbuf[10];

    QDataStream ds(&file);

    ds.writeRawData(buf, sizeof(buf));

    file.flush();  // 执行此句才会真正的写入

    file.seek(0);

    memset(readbuf, 0X00, sizeof(readbuf));

    int nread = ds.readRawData(readbuf, sizeof(readbuf));

    if(nread > 0)    // 读取成功
    {
        qDebug() << "实际读取到"
                 << nread
                 << "个字节"
                 << readbuf;
    }else if(nread == 0)
    {
        qDebug() << "未读取到有效内容!";
    }else
    {
        qDebug() << "读取失败!";
    }

    file.close();  // 关闭文件中包含了file.flush()

    return a.exec();
}

13、打开指定路径并选中指定文件

只打开一个目录:

// 打开应用程序所在目录
QDesktopServices::openUrl(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "/"));

打开一个目录并选中文件,示例代码:

QString filename = QCoreApplication::applicationFilePath();
QProcess process(this);
QString cmd(tr("explorer /select, \"%1\"").arg(filename.replace("/", "\\")));
process.startDetached(cmd);

代码解释:explorer /select [文件名]这一句是windows的命令行,意思是启动资源管理器并选中文件,这里我们利用QPocess类去执行这一条命令就是实现打开该文件目录并选中。

14、QtChart实现动态曲线实时绘制显示

https://blog.csdn.net/qq153471503/article/details/122078179

15、时间获取(日期时间类:QDateTime)

QDateTime类提供了很多静态函数,如获取本地时间currentDateTime,获取UTC时间currentDateTimeUtc、获取自1970年开始到现在的秒数currentSecsSinceEpoch,或毫秒数currentMSecsSinceEpoch

所有静态函数如下图所示:


QDateTime还提供了toString方法,可以将获取到的时间格式化成你想要的格式,示例如下:

QString currTime = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss:zzz");
qDebug() << currTime;

结果输出:“2022-11-04 08:49:01:960”,最后的数字是毫秒。


15、状态栏:QStatusBar

窗口左下角显示消息,showMessage函数可接收两个参数,第一个参数是要显示的文本,第二个参数是显示时间:

ui->statusBar->showMessage("我是消息!");

默认显示的消息是在左下角的,如果想要在右下角显示,那么需要在QStatusBar上新增一个label:

    QLabel* label = new QLabel(this);
    ui->statusBar->addPermanentWidget(label);
    label->setText("我是label");


16、QDialogButtonBox

见此博客:https://blog.csdn.net/qq153471503/article/details/127800435


17、Qt | 拖放、拖动的使用、将文件拖入使用示例

见此博客:https://blog.csdn.net/qq153471503/article/details/127807873


ends…

  • 3
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: QWave是一款基于Qt框架开发的音频波形显示控件,可以用来在Qt应用程序中实现音频波形的显示和控制。该控件支持WAV、MP3、OGG等常用音频格式,支持多种显示模式和操作,可以实现实时显示、滚动播放和缩放等功能。通过使用QWave控件,可以轻松地开发出具有音频功能的多媒体应用程序,如音频播放器、录音器等。 同时,QWave控件还支持跨平台运行,可以在多种操作系统和Qt版本下运行。其开源免费的特点,也为广大开发者提供了便捷和经济的选择。如果您需要在您的Qt应用程序中添加音频波形显示功能,不妨考虑使用QWave控件。您可以到QWave项目官网或github等开源代码库中下载最新的QWave源代码和使用文档。谢谢。 ### 回答2: Qt是一种跨平台的C++框架,它提供了许多常用的控件和功能,方便开发人员进行桌面应用程序的开发。其中,qwave是一款Qt的音频波形显示控件,它可以实现对音频波形进行可视化展示。 该控件可以直接从Qt官网上的软件中心进行下载和安装,也可以在GitHub等代码托管平台上找到相关的开源库进行下载和使用使用qwave控件可以方便地实现对音频文件的读取和展示,同时还可以实现波形颜色、粗细、放大缩小等操作。 在使用qwave控件之前,需要先进行安装和集成。安装和集成的过程可以参考官方文档和教程,具体步骤包括下载安装包、解压、编译等。安装完成后,在Qt的项目文件中添加qwave的头文件和库文件,即可在程序中调用该控件。 除了qwave,还有其他一些类似控件,如Qt的音频可视化插件QwtAudio。这些控件都可以方便地进行音频波形展示、分析和处理,加快开发人员的开发效率。 ### 回答3: qwave是一个基于Qt框架的音频波形显示控件,适合于QT开发者用于自己的音频软件项目中,它可以实现音频波形的显示、放大、缩小、移动等操作。通过将qwave控件添加到项目中,开发者可以快速方便地实现音频波形的可视化。 如果需要下载qwave控件,可以通过GitHub源码库访问qwave控件的下载链接。在GitHub官网上搜索“qwave”,即可找到开源代码和下载链接。此外,还可以直接在Qt Creator中安装qwave控件方法是在项目的.pro文件中添加一行代码:“QT += qwave”,Qt Creator将自动引用库文件。 在使用qwave控件时,需要注意一些问题。首先,需要熟悉Qt框架的基本概念和部件组件,以便能够正确地安装、运行和使用qwave控件。其次,需要针对具体的音频软件项目,进行一些修饰和调整,满足项目需求。最后,需要对使用qwave控件的代码进行测试,确保其稳定性和可靠性,减少项目出错的风险。 总之,qwave是一个强大的音频波形显示控件使用方便,可以在很多项目中帮助开发者实现音频波形的可视化。下载和使用qwave控件需要一定的技术基础和对Qt框架的了解,开发者可以通过学习和实践,逐渐掌握其使用技巧和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觉皇嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值