Qt自定义组件的流程

以我之前写的电池为例,把电池当作一个自定义的组件,这样我们可以直接在Designer里拖出来

最终效果像这样

首先先新建工程,选到这里。这个例子里用的都是MSVC2019的套件,不是Mingw

起个名字,这里起的名字和我电池的文件名一样,这样比较方便

这里可以根据自己的需求写说明

最后会得到这样的工程

这两个文件替换成之前写好的文件内容

需要在头文件添加这两个,表明我们想把这个控件写到 库里去

然后直接在release模式下编译

这样会生成一个release文件,在里面找到dll和lib文件

在Qt的目录下把dll文件拷过去,具体目录看图

这样重新加载Qt,在Designer界面就可以看到我们的组件了

但是这还不够,只是能看到组件,但是不能使用。

我们新建一个正常的Qt项目,然后再pro同目录下新建一个文件夹,我取名叫lib

然后我们把lib文件,dll文件和头文件都放到文件夹里

之后选择添加库,注意是在使用的项目里点添加,不是最开始的控件的项目

选择外部库

选择lib文件

注意包含路径看一下对不对,也要是lib文件夹的路径,我之前这里就错了

Linux和Mac取消就行

这样就完成了,可以直接在ui里面拖拽我们的电池

使用release模式运行即可

这里只给出最开始控件项目的TBattery.h和TBattery.cpp代码,可以注意一下接口,方便在使用的工程里测试

.h

#ifndef TBATTERY_H
#define TBATTERY_H

#include <QWidget>
#include<QtUiPlugin/QDesignerExportWidget>
class QDESIGNER_WIDGET_EXPORT TBattery : public QWidget
{
    Q_OBJECT
public:
    explicit TBattery(QWidget *parent = nullptr);

    int powerLevel() const;
    void setPowerLevel(int newPowerLevel);
    int warnLevel() const;
    void setWarnLevel(int newWarnLevel);

signals:


    // QWidget interface
protected:
    virtual void paintEvent(QPaintEvent *event) override;
private:
    QColor colorBackground=Qt::white;
    QColor colorBorder=Qt::black;
    QColor colorPower=Qt::green;
    QColor colorWarning=Qt::red;
    int m_powerLevel=60;//当前电量
    int m_warnLevel=20;
};


#endif // TBATTERY_H

.cpp

#include "tbattery.h"
#include<QPainter>
#include<QPaintEvent>
TBattery::TBattery(QWidget *parent)
    : QWidget{parent}
{

}
void TBattery::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QRect rect(0,0,width(),height());
    painter.setViewport(rect);//视口 绝对坐标
    painter.setWindow(0,0,120,50);//窗口 逻辑坐标 不过这次左上角是0,0
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setRenderHint(QPainter::TextAntialiasing);

    //绘制电池
    QPen pen(colorBorder);//边框颜色
    pen.setWidth(2);
    pen.setStyle(Qt::SolidLine);
    pen.setCapStyle(Qt::FlatCap);
    pen.setJoinStyle(Qt::BevelJoin);
    painter.setPen(pen);
    QBrush brush(colorBackground);
    brush.setStyle(Qt::SolidPattern);
    painter.setBrush(brush);
    rect.setRect(1,1,109,48);
    painter.drawRect(rect);//边框

    brush.setColor(colorBorder);
    painter.setBrush(brush);
    rect.setRect(110,15,10,20);
    painter.drawRect(rect);//绘制正极

    if(m_powerLevel>m_warnLevel){
        brush.setColor(colorPower);
        pen.setColor(colorPower);
    }
    else{
        brush.setColor(colorWarning);
        pen.setColor(colorWarning);
    }
    painter.setPen(pen);
    painter.setBrush(brush);
    if(m_powerLevel>0){
        rect.setRect(5,5,m_powerLevel,40);
        painter.drawRect(rect);//画电量
    }

    QString powStr=QString::asprintf("%d%%",m_powerLevel);
    QFontMetrics textSize(this->font());
    QRect textRect=textSize.boundingRect(powStr);//会根据字体算出字的矩形大小
    pen.setColor(colorBorder);
    painter.setPen(pen);
    painter.drawText(55-textRect.width()/2,25+textRect.height()/2,powStr);//在中间写字

    event->accept();

}

int TBattery::powerLevel() const
{
    return m_powerLevel;
}

void TBattery::setPowerLevel(int newPowerLevel)
{
    m_powerLevel = newPowerLevel;
}

int TBattery::warnLevel() const
{
    return m_warnLevel;
}

void TBattery::setWarnLevel(int newWarnLevel)
{
    m_warnLevel = newWarnLevel;
}

其实和使用Qt画一个电池的代码基本没区别,就加了两个宏,然后按步骤就行

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 安装 Qt 5.15.2 的步骤如下: 1. 下载 Qt 5.15.2 源文件; 2. 将文件解压缩到合适的位置; 3. 在终端中到解压的文件夹,输入 ./configure; 4. 再输入 make 和 make install; 5. 最后输入 ldconfig,安装完成。 ### 回答2: 在Ubuntu 18.04上安装Qt 5.15.2的步骤如下: 1. 在Qt官方网站下载Qt 5.15.2的安装包。选择适用于Ubuntu 18.04的版本,通常是一个.run文件。 2. 打开终端,并切换到下载目录。使用以下命令给安装包添加可执行权限: ``` chmod +x <下载目录>/qt-installer.run ``` 3. 运行安装包。使用以下命令执行安装: ``` sudo ./<下载目录>/qt-installer.run ``` 4. 在安装向导中选择所需的安装组件。可以根据需求选择要安装的Qt模块和工具。点击"继续"按钮。 5. 选择安装目录。可以选择默认的目录或自定义目录用于安装Qt。点击"继续"按钮。 6. 确认安装设置和组件选择,并点击"安装"按钮开始安装过程。根据安装包的大小和计算机性能,安装可能需要一些时间。 7. 安装完成后,可以选择启动Qt Creator,这是一个用于开发Qt应用程序的集成开发环境。 8. 在Qt Creator中,可以创建新的Qt项目,选择Qt版本为安装的Qt 5.15.2。 以上就是在Ubuntu 18.04上安装Qt 5.15.2的流程。安装完成后,可以使用Qt Creator开发和调试Qt应用程序。 ### 回答3: 在Ubuntu 18.04上安装Qt 5.15.2的流程如下: 1. 打开终端。 2. 确保您的系统已安装了必要的依赖库。运行以下命令安装: ``` sudo apt-get update sudo apt-get install build-essential libgl1-mesa-dev ``` 3. 下载Qt 5.15.2的安装包。您可以从Qt官方网站(https://www.qt.io/)上下载。选择适用于Linux的在线安装程序。 4. 在终端中导航到您下载的Qt安装程序的目录。 5. 授予安装程序执行权限。运行以下命令: ``` chmod +x qt-installer-file-name.run ``` 替换“qt-installer-file-name.run”为您下载的文件的实际名称。 6. 运行安装程序。运行以下命令: ``` ./qt-installer-file-name.run ``` 同样,将“qt-installer-file-name.run”替换为您的安装程序文件名。 7. 安装程序将显示一个图形界面。按照屏幕上的提示进行操作。 a. 选择“Custom Install”以自定义安装。 b. 选择一个目标目录来安装Qt。 c. 选择您需要的组件。确保选择Qt 5.15.2版本的组件。 d. 安装完成后,单击“Next”。 8. 完成后,启动Qt Creator集成开发环境。 9. 在Qt Creator中,选择“工具”>“选项” 10. 在选项对话框中,选择“Kits”选项卡。 11. 单击“添加”按钮,添加您的Qt安装。 a. 输入一个描述,在“Name”字段中。 b. 在“Qt version”下拉菜单中,选择您安装的Qt版本。 c. 点击“Apply”应用更改。 12. 现在,您应该能够在Qt Creator中创建和运行基于Qt 5.15.2的项目了。 这些是在Ubuntu 18.04上安装Qt 5.15.2的基本步骤。请确保按照屏幕上的提示进行操作,并根据需要进行适当的配置和自定义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值