4.7版本的qt中qml的背景透明设置和最小化

qml中的背景透明设置:

view.setStyleSheet("background:transparent;");

view.setAttribute(Qt::WA_TranslucentBackground);

qml中设置背景透明后showMinimized()(最小化)不好用解决方案是:

对qml的焦点事件重载

头文件:

#ifndef QML_WIDGET_SET_H
#define QML_WIDGET_SET_H

#include <QDeclarativeView>

class qml_widget : public QDeclarativeView
{
    Q_OBJECT
public:
    explicit qml_widget(QDeclarativeView *parent = 0);
    
signals:
    
public slots:
    virtual void focusInEvent(QFocusEvent *event);
    
};

#endif // QML_WIDGET_SET_H

cpp文件:

#include "qml_widget.h"

qml_widget::qml_widget(QDeclarativeView *parent) :
    QDeclarativeView(parent)
{

}

void qml_widget::focusInEvent(QFocusEvent *event)
{
    repaint();
}

main函数:

#include <QtGui/QApplication>
#include <QResource>
#include <QDeclarativeView>
#include <QDeclarativeContext>
#include <QTextCodec>
#include <QDebug>
#include "qml_widget.h"

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));
   QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
   QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));

qml_widget playerview;

playerview.setSource(QUrl("qrc:player.qml"));

playerview.setWindowFlags(Qt::FramelessWindowHint);

playerview.setStyleSheet("background:transparent;");
   playerview.setAttribute(Qt::WA_TranslucentBackground);

QObject *viewobj = dynamic_cast<QObject*>((QObject*)playerview.rootObject());

QObject::connect(viewobj,SIGNAL(min()),&playerview,SLOT(showMinimized()));

playerview.show();

return a.exec();
}

注:信号min()是qml页面中的发送的

时间: 2024-10-27 00:36:58

4.7版本的qt中qml的背景透明设置和最小化的相关文章

(转)WPF中让窗体不显示最大化,最小化,关闭按钮

1.在WPF中如果不想让窗体显示最大化,最小化,以及关闭按钮的话,可以再窗体的属性面板设置 将ResizeMode=NoResize时,将不会显示最大化最小化,只有关闭按钮:如下图: 将ResizeMode=CanMinimize时,最大化按钮被禁用,但是还是会显示,不能按,最小化,关闭按钮正常显示: 将WindowStyle=None时,将不会显示出最大化,最小化,以及关闭按钮,周围的边框也不存在. 还有一种方式: WPF:窗体不显示或禁用最大化.最小化.关闭按钮.图标以及对话框显示

如何在ie6/ie7/ie8中实现iframe背景透明

最近做了一个项目,涉及到ie8iframe背景透明的问题,做了老半天,才把它搞定的,现在把我的经历贴出来和大家分享: 众所周知的根据W3C CSS 2.1 规范规定,''''background-color'''' 特性的默认值为 ''''transparent'''',即透明:但是IE6/IE7/IE8中 BODY 元素的背景色不是 transparent,而是 #FFFFFF;也就是变成了白色的. 其实,有一点我们是要注意的,也是必须知道的,在iframe中这个背景是其本身,不是iframe

qt 中画线时如何设置笔的颜色和填充

在上一次介绍中已经实现了自定义控件,并把Widget 放入了主界面中,画了一个圆,具体可参考"QT 自定义窗口" 下面我们介绍一下如何设置画笔颜色和所画图形的填充颜色. 画笔颜色: void CircleWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); //painter.setBrush(QBrush(QColor(0x00,0xFF,0x00))); //painter.drawEllipse(QPoi

MFC中static控件 透明设置

HBRUSH CXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)  {  HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);  // TODO: Change any attributes of the DC here  switch(pWnd->GetDlgCtrlID())  {      case IDC_STATIC:      {         pDC->Set

在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)

在本文档中 本笔记介绍了在Oracle电子商务套件版本12.2中创建自定义应用程序所需的基本步骤.如果您要创建新表单,报告等,则需要自定义应用程序.它们允许您将自定义编写的文件与Oracle电子商务套件提供的标准种子功能分离.在向您的环境应用修补程序或执行升级时可以保留自定义设置. 自定义数据和索引表空间默认为APPS_TS_TX_DATA和APPS_TS_TX_IDX. 注意:当没有活动的修补程序周期时,应在运行文件系统上执行本文档中描述的过程. 也可以按照此过程更正先前创建的不使用AD Sp

Qt 单击任务栏图标实现最小化

Qt中对于窗口边框的设置一般用到setWindowFlags函数. void setWindowFlags(Qt::WindowFlags type) 如果只setWindowFlags(Qt::FramelessWindowHint); 去掉边框,此时会发现,当程序打开后,单击任务栏的按钮,会发现无法最小化,隐藏窗口. 解决的方法是: setWindowFlags(Qt::Window|Qt::FramelessWindowHint |Qt::WindowSystemMenuHint|Qt::

Qt5.3中qml ApplicationWindow设置窗口无边框问题

这个版本的qt在这里有点bug.. 设置ApplicationWindow的flags属性为Qt.FramelessWindowHint的确可以使程序无边框,但是同时程序在任务栏的图标也没了. 看文档发现 ApplicationWindow 是由 QQuickWindow 实现的,QQuickWindow 又继承于 QWindw. 直接创建一个QWindow对象实验了一下,代码如下 QWindow window; window.setFlags( Qt::FramelessWindowHint

在Qt中使用C++代码创建界面

Qt 支持两种创建界面的方式: 一种是使用C++代码,Qt 自诞生以来就支持: 一种是使用 QML,可以创建个性化的界面: Qt 提供了多种工程类型,选择不同的工程类型将导致使用不同的方式来创建界面. 首次打开Qt,会出现欢迎界面,点击New Project按钮,或者在菜单栏点击文件,然后选择新建文件或项目, 都会弹出向导对话框,如下图所示:(不同的Qt编译器版本,界面可能会有所差别) Qt Widgets Application和Qt Console Application工程将会使用C++代

qt中可运行,但打包后的exe不能直接运行

背景:编译rdm2019.4.0版本 编译release完成后,在qt中可以直接运行,但使用qt的部署工具部署后,rdm无法显示界面: 原因:需要使用“自己的”qml文件夹,即rdm.exe中的qml文件夹,而不是qt环境中的qml文件夹: 命令:windeployqt --qmldir rdm\src\qml rdm.exe 注意: 需要python37.dll才能运行 需要crashreporter 编译crashreporter时,需要添加几个宏定义?我是这么干的~~~~ 原文地址:htt