前几天课设做个聊天系统,顺便实现了这个在程序外显示弹幕作为消息提示的功能,这里记录一下怎么搞。
目录
效果
思路
- 创建一个子窗口
- 将子窗口去掉窗口标题栏,设置背景透明
- 在里面放文本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("嘿嘿,我的洛天依");
}
}
}
问题
- 这个弹幕会被其他高层次的窗口遮挡,显然问题在于我们创建的窗口不是顶层窗口,这个后面再看看咋整。
Привет!
Приобрести диплом университета.
lastdemo.primepix.ru/club/user/88/blog/8745/
оснащение переговорных комнат оснащение переговорных комнат .
Здравствуйте!
Мы готовы предложить дипломы любой профессии.
samanalevi.com.tr/read-blog/62_kak-podobrat-nadezhnyj-i-proverennyj-magazin-prodayushij-dokumenty.html
Всегда вам поможем!.
оснащение конференц зала оснащение конференц зала .
Привет, друзья!
Мы готовы предложить дипломы любой профессии.
montrealpal.com/read-blog/815_kak-najti-nadezhnyj-magazin-prodayushij-diplomy.html
Рады оказать помощь!.
переговорные комнаты под ключ переговорные комнаты под ключ .
Привет!
Парадокс, но купить диплом кандидата наук оказалось не так и сложно
landik-diploms-srednee.ru/attestat-shkoly В
Привет!
Мы предлагаем дипломы любой профессии.
lifethelife.com/read-blog/269_proverennyj-onlajn-magazin-s-obshirnym-vyborom-dokumentov.html
Поможем вам всегда!.
Привет!
Приобрести документ о получении высшего образования
ast-diploms24.ru/kupit-diplom-omsk
Здравствуйте!
Как оказалось, купить диплом кандидата наук не так уж и сложно
http://www.sonicetactical.ru/купить-диплом-2001/
Привет, друзья!
Купить документ института можно в нашей компании в столице.
diplomyx24.ru/kupit-diplom-ekaterinbur
Хорошей учебы!
Добрый день!
Купить документ о получении высшего образования можно в нашем сервисе.
diplomasx.com/kupit-diplom-kazan
Добрый день!
Мы изготавливаем дипломы любых профессий по выгодным тарифам. Цена зависит от той или иной специальности, года выпуска и ВУЗа. Всегда стараемся поддерживать для покупателей адекватную ценовую политику. Для нас важно, чтобы дипломы были доступны для большого количества граждан.
bookmarkwuzz.com/story17194794/купить-диплом-о-высшем-цена
Привет, друзья!
Купить диплом университета.
dervislergrup.com/events/event/10-obsirnyi-katalog-dokumentov-v-izvestnom-internet-magazine/
Привет, друзья!
Где заказать диплом по актуальной специальности?
travelwithme.social/read-blog/45682
Hello, I do believe your site could be having browser compatibility issues. Whenever I look at your web site in Safari, it looks fine however, if opening in IE, it’s got some overlapping issues. I simply wanted to give you a quick heads up! Other than that, excellent blog.
120 mg strattera
Здравствуйте!
Купить диплом любого ВУЗа.
clubalpintoulouse.fr/cb-profile/pluginclass/cbblogs?action=blogs&func=show&id=146
продвижение сайта в топ 10 цена казань сео продвижение
продвижение сайт https://seoraskrutka43.ru
Здравствуйте!
Купить документ о получении высшего образования можно в нашем сервисе.
ast-diplom24.ru/kupit-diplom-ekaterinbur
Хорошей учебы!
Привет!
Приобрести документ института можно в нашем сервисе.
ast-diplomas24.ru/kupit-diplom-nizhnij-novgorod
Хорошей учебы!
Здравствуйте!
Приобрести документ ВУЗа можно в нашей компании в столице.
diplomasx.com/kupit-diplom-rostov-na-donu
Удачи!
Привет!
Купить документ университета можно у нас.
ast-diplom.com/kupit-diplom-krasnodar
Помощь студентам в выполнении рефератов https://referatkupit-oline.ru. Низкие цены и быстрое написание рефератов!
Hi there! I could have sworn I’ve been to this web site before but after looking at a few of the posts I realized it’s new to me. Nonetheless, I’m certainly delighted I found it and I’ll be book-marking it and checking back regularly.
Добрый день!
Как безопасно купить диплом колледжа или ПТУ в России, что важно знать
newsbig2.almoheet-travel.com/gramotno-pokupaem-diplom-v-seti-internet-avtorskij-obzor/
Добрый день!
Мы изготавливаем дипломы любой профессии по приятным тарифам.
transad-advertising.com/купить-приложение-к-диплому/
Здравствуйте!
Легальная покупка диплома о среднем образовании в Москве и регионах
willstonemidlevel.com/куплю-диплом-фото/
оснащение конференц зала оснащение конференц зала .
Красивая музыка https://melodia.space для души слушать онлайн.
flomax price usa
Accessibility Team Meeting Notes https://make.wordpress.org/accessibility/2021/06/11/accessibility-team-meeting-notes-june-11-2021
оборудование для совещаний и конференций http://www.oborudovanie-konferenc-zalov.ru .
buy generic advair
Добрый день!
Заказать документ о получении высшего образования вы сможете в нашей компании.
ast-diploms.com/kupit-diplom-chelyabinsk
Привет!
Заказать документ о получении высшего образования можно в нашей компании в столице.
ast-diplom.com/kupit-diplom-perm
Привет!
Заказать документ о получении высшего образования вы сможете у нас в Москве.
ast-diplomas.com/kupit-diplom-sankt-peterburg
Успешной учебы!
Здравствуйте!
Купить диплом любого ВУЗа.
d6united.mn.co/posts/61724052
Заказать дипломную работу https://diplomzakazat-oline.ru недорого. Дипломные работы на заказ с гарантией.
Заказать курсовую работу https://kursovye-napishem.ru в Москве: цены на написание и выполнение, недорого
A motivating discussion is definitely worth comment. I believe that you ought to publish more on this issue, it may not be a taboo subject but typically people don’t speak about such issues. To the next! Best wishes!
Привет, друзья!
Как приобрести диплом о среднем образовании в Москве и других городах
caretrip.net/купить-диплом-вуза-быстро-и-легко/
Будем рады вам помочь!.
Привет!
Купить документ института можно в нашей компании.
asxdiplomik24.ru/kupit-diplom-nizhnij-novgorod
Хорошей учебы!
Привет, друзья!
Купить диплом любого университета.
158.160.31.233/blogs/1/kak-nayti-proverennyy-onlayn-magazin-s-ogromnym-katalogom-diplomov.php
えろ 人形staying physically close and connected to a group of other human beings.It’s easy to forget this in our modern world,
Заказать контрольную работу https://kontrolnye-reshim.ru, недорого, цены. Решение контрольных работ на заказ срочно.
купить 2 квартиру новостройке https://kvartira-novostroyka2.ru
buy vermox
Помощь в решении задач https://zadachireshaem-online.ru. Опытные авторы с профессиональной подготовкой окажут консультацию в решении задач на заказ недорого, быстро, качественно