Qt为移动设备创建原型工具

时间:2016-01-18 13:39:12

标签: c++ qt user-interface

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

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

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

或者任何更好的方法来实现它。

enter image description here

1 个答案:

答案 0 :(得分:1)

我可以为您提供如何创建此类应用的小代码示例。对于主窗口,您可以设置从该图像创建的画笔,然后为窗口设置遮罩以确保其正确绘制。您还需要设置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通道(我的意思是角落)。现在还没有。