找回密码
 立即注册
收起左侧

关于QML写的界面如何与C++对话框(dialog)叠加在一起

14
回复
17123
查看
[复制链接]
累计签到:97 天
连续签到:1 天
来源: 2015-5-8 09:14:16 显示全部楼层 |阅读模式
2Qter豆
比如我用qt写了一个对话框dialog,在这个对话框上显示一张图片
又假如我用qml写了一个显示一段文字和按钮或者其他什么东西
那怎么把我用qml写的这些界面的东西加到这个dialog上面去呢
最后效果能达到dialog上显示图片,然后qml写的东西又叠加在图片上,相当于在同一个对话框上

最佳答案

查看完整内容

4.8也可以的 那时候还不叫quick,叫declarative。 你搜一下QDeclarativeView这个控件,可以加到widget里面的
回复

使用道具 举报

尚未签到

2015-5-8 09:14:17 显示全部楼层
kmxtye 发表于 2015-5-10 19:54
这个只有5.3版本里才有吗??
我用的4.8版本,有办法吗??

4.8也可以的

那时候还不叫quick,叫declarative。

你搜一下QDeclarativeView这个控件,可以加到widget里面的
回复

使用道具 举报

累计签到:97 天
连续签到:1 天
2015-5-8 10:26:35 显示全部楼层
顶起
回复

使用道具 举报

累计签到:97 天
连续签到:1 天
2015-5-8 13:31:50 显示全部楼层
没人做过吗,还是我说的太复杂了吗
回复

使用道具 举报

尚未签到

2015-5-8 17:13:55 显示全部楼层
里面加QQuickWidget 就行了
回复

使用道具 举报

累计签到:97 天
连续签到:1 天
2015-5-10 19:54:27 显示全部楼层
Joey_Chan 发表于 2015-5-8 17:13
里面加QQuickWidget 就行了

这个只有5.3版本里才有吗??
我用的4.8版本,有办法吗??
回复

使用道具 举报

累计签到:97 天
连续签到:1 天
2015-5-11 09:02:19 显示全部楼层
Joey_Chan 发表于 2015-5-10 21:28
4.8也可以的

那时候还不叫quick,叫declarative。

类似这样的
QDeclarativeView *qmlView = new QDeclarativeView;
qmlView->setSource(QUrl::fromLocalFile("myqml.qml"));
QWidget *widget = myExistingWidget();
QVBoxLayout *layout = new QVBoxLayout(widget);
layout->addWidget(qmlView);
现在qml部件已经被我像QWidget部件一样添加到用户界面中了,但是布局用的QVBoxLayout或者QHBoxLayout
我想把我加载的qml部件叠加到原来的C++ ui上,可以实现吗?
回复

使用道具 举报

尚未签到

2015-5-11 09:38:07 显示全部楼层
kmxtye 发表于 2015-5-11 09:02
类似这样的
QDeclarativeView *qmlView = new QDeclarativeView;
qmlView->setSource(QUrl::fromLocalFi ...

qml只能在view里面显示,别的地方不行的
回复

使用道具 举报

累计签到:97 天
连续签到:1 天
2015-5-12 22:49:46 显示全部楼层


又是来结贴的,顺便记录一下
图中hello world是用qml写的
图片是用qt c++的label控件显示的
把qml当做widget载入,实现窗体的无边框,透明化
布局可以采用绝对位置定位
具体关键一点儿的代码如下:
    QDeclarativeView *qmlView = new QDeclarativeView(this);
    qmlView->setGeometry(0,0,300,300);

    qmlView->setWindowFlags(Qt::FramelessWindowHint);//无边框
    qmlView->setAttribute(Qt::WA_TranslucentBackground);//窗体透明
    qmlView->setStyleSheet("background:transparent");

    qmlView->setSource(QUrl::fromLocalFile("qml/callQml/main.qml"));

qml文件代码中关键的一句是要设置父对象的颜色:color: "#00000000"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

尚未签到

2015-5-12 23:13:48 显示全部楼层
kmxtye 发表于 2015-5-12 22:49
又是来结贴的,顺便记录一下
图中hello world是用qml写的
图片是用qt c++的label控件显示的

不错不错,悟性很好
回复

使用道具 举报

累计签到:97 天
连续签到:1 天
2015-5-13 08:39:24 显示全部楼层
Joey_Chan 发表于 2015-5-12 23:13
不错不错,悟性很好

我感觉自己进度好慢,有时候一个问题要弄几天才解决
特别是一些不太了解的用法
难道大家都是这么一点一点过来的吗??
求前辈指导
回复

使用道具 举报

尚未签到

2015-5-13 10:16:27 显示全部楼层
kmxtye 发表于 2015-5-13 08:39
我感觉自己进度好慢,有时候一个问题要弄几天才解决
特别是一些不太了解的用法
难道大家都是这么一点一点 ...

都是这样的,刚开始什么都做不了,过了某个临界点后会突然大彻大悟
回复

使用道具 举报

累计签到:97 天
连续签到:1 天
2015-5-13 10:47:53 显示全部楼层
Joey_Chan 发表于 2015-5-13 10:16
都是这样的,刚开始什么都做不了,过了某个临界点后会突然大彻大悟

恩,以前是搞单片机的
还好,现在弄起来还是有感觉的
特别是知道qml写界面,从未有过的搭积木的感觉,
不过逻辑功能和数据传递之类的实现,还是需要花时间
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-11-25 13:19:41 显示全部楼层
学到了。借地咨询是否能在qml中加载ui文件?比如我主界面用qml设计,其中一个子界面是qt designer设计的ui文件,主界面能否跳转到子界面去?
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2015-12-30 17:13:22 显示全部楼层
kmxtye 发表于 2015-5-12 22:49
又是来结贴的,顺便记录一下
图中hello world是用qml写的
图片是用qt c++的label控件显示的

想问下楼主的label是怎么插的?直接在ui上插入么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了