前几天课设做个聊天系统,顺便实现了这个在程序外显示弹幕作为消息提示的功能,这里记录一下怎么搞。
目录
效果
思路
- 创建一个子窗口
- 将子窗口去掉窗口标题栏,设置背景透明
- 在里面放文本Text
- 设置定时器控制子窗口从左到右移动,移动到右边缘时销毁子窗口
实操
- 新建qml文件,这里示例 Barrage.qml
- 里面写入:
import QtQuick 2.3
import QtQuick.Controls 2.5
//窗口
ApplicationWindow {
id:root
property string str: "我的洛天依" //弹幕文本内容
width: 300
height: 40
flags: Qt.FramelessWindowHint //去掉窗口标题栏
color:"#00000000" //设置背景透明
Rectangle { //使用矩形包裹Text是为了在Text外面可以增加圆角矩形边框效果
anchors.fill: parent
border.width: 1 //设置边框
border.color: "#66ccff"
color:"#00000000"
radius: 20 //边框圆角
clip: true //超出矩形范围的内容隐藏
Text { //弹幕文本
anchors.fill: parent
text: str
font.bold: true
font.pointSize: 15
color: "#66ccff"
style: Text.Outline //设置文本样式,在字体轮廓加一层styleColor指定的颜色边缘,防止背景导致文本不明显
styleColor: "#fff"
horizontalAlignment: Text.AlignHCenter //居中
verticalAlignment: Text.AlignVCenter
clip: true
}
}
}
- 在需要调用的qml文件中,导入并按如下操作使用:
- 由于Barrage.qml和main.qml在同一目录下:
- 因此在main.qml中可以直接使用Barrage.qml
- 以下是 main.qml 的内容
import QtQuick
import QtQuick.Window 2.3
import QtQuick.Controls 2.5
Window {
id:mainWin
width: 700
height: 500
visible: true
title: qsTr("MimicryChat")
//添加弹幕
function addBarrage(in_str) {
var newCom = Qt.createComponent("Barrage.qml"); //创建弹幕窗口
var newWin = newCom.createObject();
newWin.x = 200;
newWin.y = Math.random() * 900; //随机竖直位置
newWin.str = in_str; //设置弹幕文本
newWin.show(); //显示弹幕窗口
//设置定时控制器
let timer = Qt.createQmlObject("import QtQuick 2.14; Timer {}", mainWin);
timer.interval = 20; //执行间隔时间(单位ms)
timer.repeat = true; //重复执行
timer.triggered.connect(function() { //执行内容
if(newWin.x < 1700) { //如果没到右边缘就移动2个像素点
newWin.x += 2;
} else {
timer.stop(); //到达右边缘,则停止定时控制器,并销毁弹幕
newWin.close();
}
});
timer.start(); //启动定时器
}
Rectangle { //主窗口背景颜色
anchors.fill: parent
color: "#dde8fc"
radius: 20
}
Button {
width:100
height: 40
text:"发送弹幕"
anchors.bottom: parent.bottom
anchors.bottomMargin: 10
//水平居中
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
addBarrage("嘿嘿,我的洛天依");
}
}
}
问题
- 这个弹幕会被其他高层次的窗口遮挡,显然问题在于我们创建的窗口不是顶层窗口,这个后面再看看咋整。
where to buy clomid without dr prescription: can i buy clomid for sale – can you buy generic clomid without a prescription
Добрый день!
Как приобрести диплом о среднем образовании в Москве и других городах
make-coin.ru/legkiy-sposob-poluchit-diplom-onlayn
buy clomid 100mg online
Привет, друзья!
Заказать документ о получении высшего образования можно в нашей компании в столице.
asxdiplomik24.ru/kupit-diplom-rostov-na-donu
Удачи!
Привет, друзья!
Приобрести документ о получении высшего образования вы имеете возможность в нашей компании в столице.
diploms-x.com/kupit-diplom-magistra
http://clomiddelivery.pro/# can i get clomid without dr prescription
Добрый день!
Заказать диплом о высшем образовании.
anomalnews.ru/wp-login.php?action=rp&key=icqTRMlZSxWyUnOdAr2Q&login=miguelpAcags
Удачи!
Привет, друзья!
Официальная покупка диплома вуза с сокращенной программой в Москве
landik-diploms-srednee.ru/kupit-diplom-v-novosibirske В
http://paxloviddelivery.pro/# Paxlovid over the counter
Привет!
Где купить диплом по нужной специальности?
Заказать диплом ВУЗа.
forum.fiat-club.ru/blog_post.php?do=updateblog&blogid=
azithromycin amoxicillin: generic for amoxicillin – buy amoxicillin 500mg canada
Здравствуйте!
Где заказать диплом специалиста?
Приобрести диплом любого ВУЗа.
http://www.startspresto.ru/cb-profile/pluginclass/cbblogs?action=blogs&func=show&id=145
Добрый день!
Где заказать диплом специалиста?
Приобрести диплом о высшем образовании.
86hm.ru/forum/flame/?topic_id=25095
диплом купить о среднем ast-diploms.com .
Добрый день!
Стоимость дипломов высшего и среднего образования и процесс их получения
alhambra.bestforums.org/viewtopic.php?f=10&t=37463&p=47731#p47731
Рады оказать помощь!.
Добрый день!
Официальная покупка диплома вуза с сокращенной программой в Москве
http://www.msestudio.com.br/купить-диплом-мфюа/
Добрый день!
Купить диплом любого университета.
thehubbcommunitynetwork.mn.co/posts/61679289
Привет!
Как безопасно купить диплом колледжа или ВУЗа в России, что важно знать
tyachiv.ukraine7.com/t21120-topic#39099
Поможем вам всегда!.
buy paxlovid online: paxlovid india – paxlovid buy
Здравствуйте!
Как безопасно купить диплом колледжа или ПТУ в России, что важно знать
moregasmsplease.com/component/kunena/user/564237-ydekic
Поможем вам всегда!.
Здравствуйте!
Приобретение школьного аттестата с официальным упрощенным обучением в Москве
gadjetforyou.ru/diplom-za-dengi-byistro-nadezhno-bezopasno
Рады помочь!.
купить диплом в йошкар оле asxdiplomik24.ru .
https://ciprodelivery.pro/# cipro 500mg best prices
My partner and I stumbled over here coming from a different web address
and thought I may as well check things out. I like what I see so now
i’m following you. Look forward to checking out your web page yet again.
mexican pharmacy online reviews
Привет!
Купить документ университета можно у нас в Москве.
diplomyx.com/otzyvy
Успешной учебы!
Стоимость дипломов высшего и среднего образования и как избежать подделок
asxdiplomik24.ru/kupit-diplom-novosibirsk
Привет!
Купить диплом о среднем полном образовании, в чем подвох и как избежать обмана?
arusak-diploms-srednee.ru/kupit-diplom-v-krasnodare В
Добрый день!
Полезные советы по покупке диплома о высшем образовании без риска
arusak-diploms-srednee.ru/kupit-diplom-v-cheliabinske В
Как не попасть впросак при покупке диплома колледжа или ПТУ в России
diplomasx24.ru/kupit-diplom-sankt-peterburg
Привет!
Наша компания предлагает быстро и выгодно купить диплом, который выполнен на оригинальном бланке и заверен печатями, штампами, подписями. Диплом пройдет любые проверки, даже с использованием профессионального оборудования. Достигайте своих целей быстро и просто с нашими дипломами.
vk.com/vzpiarrr?w=wall-224679085_12255
Успехов в учебе!
doxycycline 100 mg tablets: buy vibramycin – doxycycline over the counter australia
Привет, друзья!
Заказать документ о получении высшего образования вы сможете у нас.
diplomyx24.ru/kupit-diplom-moskva
https://clomiddelivery.pro/# where can i buy clomid prices
lyrica 225 mg
https://amoxildelivery.pro/# order amoxicillin uk
amoxicillin 500 coupon: buy amoxicillin 500mg canada – amoxicillin 500 mg tablet price
This is a good tip particularly to those fresh to the blogosphere. Short but very precise information… Appreciate your sharing this one. A must read article!
Здравствуйте!
Мы готовы предложить документы техникумов, которые находятся в любом регионе Российской Федерации. Вы можете заказать диплом за любой год, в том числе документы СССР. Дипломы и аттестаты выпускаются на бумаге высшего качества. Это дает возможность делать настоящие дипломы, которые невозможно отличить от оригиналов. Документы будут заверены всеми необходимыми печатями и штампами.
unguka.com/read-blog/9051
https://amoxildelivery.pro/# amoxicillin 500mg capsules uk
https://amoxildelivery.pro/# where to buy amoxicillin over the counter
buy doxycycline hyclate 100mg without a rx: buy doxycycline south africa – where to buy doxycycline
Здравствуйте!
Сколько стоит диплом высшего и среднего образования и как это происходит?
fordtransit.5nx.ru/viewtopic.php?f=25&t=9347
Рады оказаться полезными!.
they rely heavily on the childhood defenses of denial and projection.えろ 人形The most pernicious aspect of narcissistic false victimhood is victim blaming,
Добрый день!
Заказать документ о получении высшего образования можно в нашем сервисе.
ast-diplomas.com/kupit-diplom-magistra
Успехов в учебе!
and support the ebb and flow of each other yet continue to hold hands,えろ 人形look each other in the e and check in,
https://paxloviddelivery.pro/# paxlovid for sale
doxycycline 10mg: 40mg doxycycline prices – doxycycline pharmacy
how to buy cheap clomid no prescription: can i purchase generic clomid without dr prescription – buying clomid without rx
Здравствуйте!
Купить документ института вы можете у нас в Москве.
ast-diplom.com/kupit-diplom-nizhnij-novgorod
Удачи!