在 qt 中创建一个带有图像形状的窗口
Create a window in qt with shape from an image
有人可以解释我如何根据图像中某些对象的形状在qt中制作窗口,例如我有一个树的图像,使用它我需要创建一个树形状的窗口..
经过长时间的搜索,我自己找到了一个很好的解决方案,看看这个..
#include <QtGui>
class myMainWindow:public QMainWindow
{
public:
myMainWindow():QMainWindow()
{
setMask((new QPixmap("saturn.png"))->mask());
QPalette* palette = new QPalette();
palette->setBrush(QPalette::Background,QBrush(QPixmap("saturn.png")));
setPalette(*palette);
setWindowFlags(Qt::FramelessWindowHint);
QWidget *centralWidget = new QWidget(this);
QGridLayout *layout = new QGridLayout();
centralWidget->setLayout(layout);
QPushButton* button1 = new QPushButton("Button 1");
button1->setFixedSize(80,50);
layout->addWidget(button1,0,0);
setCentralWidget(centralWidget);
};
~myMainWindow(){};
};
int main(int argc, char **argv)
{
QApplication app(argc, argv);
myMainWindow *window = new myMainWindow();
window->resize(600, 316);
window->show();
return app.exec();
}
这是制作具有半透明背景颜色的小部件的配方。只需通过使背景完全透明来从那里展开,然后将其上的树图像显示为背景图像。请注意,在布局其子元素方面,小部件的行为仍然像矩形小部件,因此您可能需要使用树形中的一些自定义布局来处理这个问题。
从QWidget::setMask
的文档开始。它有一个采用QBitmap的版本和一个采用QRegion的版本。这是获取透明小部件的基本功能。该工具包还包括一个使用 QRegion 版本的时钟示例——我怀疑位图也同样简单。
相关文章:
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- C++ 窗口显示无框图像
- 在qt窗口中具有图像,而无需将图像文件本身作为源
- 如何设置与其背景图像大小相对应的窗口大小?
- 如何在 direct2d 中使用随其窗口重新缩放的效果绘制图像
- 创建位图图像未在窗口上打印
- 如何将图像数据从搜索窗口中移动到本地存储器OpenCL
- 在使用 resizeEvent 调整窗口大小时调整 Qlabel 图像的大小
- 如何将子窗口(MFC 应用程序)的工作区保存到图像
- 在没有任何外部库的情况下,是否可以在c++/linux的窗口中显示bmp图像
- 输入层类型:图像数据在窗口咖啡cpp中给出空白输出
- 在调整大小窗口时,如何使用鼠标单击来获取图像的坐标
- 如何在C 和QT中的另一个窗口中显示MainWindow的结果图像
- 在Qt窗口中的一小部分中查看图像
- 如何保持我在 Visual Studio SDL 中编写的图像窗口处于打开状态
- 滚动条缩略图跟踪长度 基于图像的水平适合调整窗口大小时出现问题
- 如何在窗口 MFC 应用程序中更改图像
- Opencv图像窗口/imshow
- 在程序运行期间,图像窗口没有响应openv
- Visual Studio with OpenCV:即使程序退出,我也能保持图像窗口打开吗