您好,我需要使用 Qt 为智能手机屏幕创建原型(prototype)工具,我现在有智能手机的 png 图像,需要放置一些文本和图像,如下图所示。
所以我的问题是,在 C++ Qt 中是否已经存在类似的工具来创建这样的工具。
或者我是否需要使用 QPainter 来实现它。
或者任何更好的方法来完成它。
最佳答案
我可以给你一个小代码示例,你可以如何创建这样的应用程序。对于主窗口,您可以设置从此图像创建的画笔,然后为窗口设置 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/