您好我需要使用Qt为智能手机屏幕创建原型工具,我现在有智能手机的png图像,需要放置一些文字和图像,如下图所示。
所以我的问题是,在C ++ Qt中创建这样的工具是否已经存在类似的东西。
或者我是否需要使用QPainter来实现它。
或者任何更好的方法来实现它。
答案 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通道(我的意思是角落)。现在还没有。