c++ - Qt创建移动设备原型(prototype)工具

标签 c++ qt user-interface

您好,我需要使用 Qt 为智能手机屏幕创建原型(prototype)工具,我现在有智能手机的 png 图像,需要放置一些文本和图像,如下图所示。

所以我的问题是,在 C++ Qt 中是否已经存在类似的工具来创建这样的工具。

或者我是否需要使用 QPainter 来实现它。

或者任何更好的方法来完成它。

enter image description here

最佳答案

我可以给你一个小代码示例,你可以如何创建这样的应用程序。对于主窗口,您可以设置从此图像创建的画笔,然后为窗口设置 mask 以确保其以正确的方式绘制。您还需要设置 Qt::FramelessWindowHint 标志。然后您可以将所有需要的小部件添加到此小部件。小例子(假设 :/img/i.png 是你的图片,保存到资源中):

.h 文件中:

#include <QFrame>
#include <QPixmap>

class TestFrame : public QFrame
{
    Q_OBJECT
public:
    TestFrame(QWidget* p = 0);

protected:
    void resizeEvent(QResizeEvent* e) override;

private:
    QPixmap _pix;
};

.cpp 文件中:

#include <QBitmap>

TestFrame::TestFrame(QWidget *p) :
    QFrame(p, Qt::FramelessWindowHint | Qt::WindowSystemMenuHint),
    _pix(":/img/i.png")
{
    QPalette pal = palette();
    pal.setBrush(QPalette::Background, QBrush(_pix));
    setPalette(pal);
    resize(_pix.width(), _pix.height());
}

void TestFrame::resizeEvent(QResizeEvent *e)
{
    QFrame::resizeEvent(e);
    setMask(_pix.scaled(size()).mask());
}

还要确保您的图像具有用于不可见部分(我的意思是角)的 alpha channel 。目前还没有。

关于c++ - Qt创建移动设备原型(prototype)工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856147/

相关文章:

android - 在屏幕底部对齐 fragment

c++ - 基于输入文件的未知大小数组

qt - 在 Qt 中获取运行时架构信息

c++ - 从 C++ 使用 SOCKS 代理

c++ - QML/C++ 从 main.cpp 中的 QML 获取信息

c++ - Qt 部署的可执行文件打开空白应用程序

vue.js - Bootstrap vue 表的动态分页

c# - 使用线程时 Gui 卡住

c++ - 如何打印图中两个顶点之间的最短路径?

c++ - 使用 std::bind 并存储到 std::函数中