前几天课设做个聊天系统,顺便实现了这个在程序外显示弹幕作为消息提示的功能,这里记录一下怎么搞。
目录
效果
思路
- 创建一个子窗口
- 将子窗口去掉窗口标题栏,设置背景透明
- 在里面放文本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("嘿嘿,我的洛天依");
}
}
}
问题
- 这个弹幕会被其他高层次的窗口遮挡,显然问题在于我们创建的窗口不是顶层窗口,这个后面再看看咋整。
Здравствуйте!
Приобрести документ о получении высшего образования вы имеете возможность у нас.
diplomasx.com/kupit-diplom-bakalavra-ili-specialista
Добрый день!
Как не попасть впросак при покупке диплома колледжа или ПТУ в России
landik-diploms-srednee.ru/kupit-diplom-v-novosibirske В
Добрый день!
Как купить диплом о высшем образовании с минимальными рисками
landik-diploms-srednee.ru/kupit-diplom-v-kazani В
Very good blog post. I absolutely love this site. Thanks!
Привет, друзья!
Приобрести документ о получении высшего образования
diploms-x.com/kupit-diplom-vracha
Добрый день!
Официальная покупка диплома вуза с сокращенной программой обучения в Москве
arusak-diploms-srednee.ru/diplom-sredne-spetcialnoe-obrazovanie В
Привет, друзья!
Мы изготавливаем дипломы любых профессий по приятным тарифам.
houseofnails.store/2024/06/30/диплом-самара-купить/
Привет, друзья!
Как избежать рисков при покупке диплома колледжа или ПТУ в России
http://www.manchestercityclubs.com/read-blog/256_kak-kupit-nedorogo-neotlichimyj-ot-podlinnika-diplom-v-internete.html?mode=night
Здравствуйте!
Купить документ о получении высшего образования
diplomasx.com/kupit-diplom-magistra
лучшие капперы с бесплатными прогнозами лучшие капперы с бесплатными прогнозами .
Привет, друзья!
Заказать документ о получении высшего образования вы сможете в нашей компании в столице.
ast-diplom.com/kupit-diplom-rostov-na-donu
Успехов в учебе!
Привет, друзья!
Мы изготавливаем дипломы любых профессий по невысоким ценам.
es-presto.ru/community/groups/0-0/179-4-glavnykh-gruppy-internet-magazinov-kotorye-prodayut-diplomy
Здравствуйте!
Приобрести диплом о высшем образовании.
yur-dom.ru/communication/forum/messages/forum3/message242/285-bolshoy-vybor-dokumentov-v-izvestnom-internet_magazine?result=new
Здравствуйте!
Приобрести документ о получении высшего образования вы можете у нас в столице.
ast-diploms.com/kupit-diplom-tehnikuma-kolledzha
недорогие квартиры от застройщика https://kvartiranovostroi2.ru
Привет, друзья!
Легальная покупка диплома о среднем образовании в Москве и регионах
vk.com/public50470295?w=wall-50470295_628
Будем рады вам помочь!.
купить однокомнатную квартиру в новостройке купить двухкомнатную квартиру
Добрый день!
Приобрести документ о получении высшего образования можно в нашей компании в Москве. Мы предлагаем документы об окончании любых университетов России. Вы сможете получить необходимый диплом по любой специальности, включая документы Советского Союза. Гарантируем, что в случае проверки документа работодателями, подозрений не появится.
Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий по приятным тарифам. Стоимость будет зависеть от выбранной специальности, года выпуска и образовательного учреждения. Всегда стараемся поддерживать для заказчиков адекватную ценовую политику. Для нас очень важно, чтобы документы были доступны для подавляющей массы граждан.
onlinekinofun.ru/diplom-po-vashemu-vyiboru-vasha-garantiya-uspeshnogo-budushhego
Рады оказать помощь!
проверенные капперы проверенные капперы .
Здравствуйте!
Приобрести документ университета можно в нашем сервисе.
ast-diplomas.com/kupit-diplom-perm
конференц-залы под ключ конференц-залы под ключ .
квартиры с отделкой от застройщика https://kvartiranovostroi.ru
Покупка диплома о среднем полном образовании: как избежать мошенничества?
ast-diplomy24.ru/kupit-diplom-rostov-na-donu
лучшие капперы с бесплатными прогнозами лучшие капперы с бесплатными прогнозами .
купить квартиру от застройщика https://zastroyshikekb.ru
купить новостройку с отделкой квартиры с отделкой от застройщика
Здравствуйте!
Заказать документ университета можно в нашей компании.
ast-diplomas24.ru/kupit-diplom-o-srednem-obrazovanii
Успехов в учебе!
Добрый день!
Приобрести диплом любого университета.
blogs.rufox.ru/~sonnick84/48075.htm
Привет!
Приобрести документ ВУЗа можно у нас в Москве.
ast-diplomy.com/kupit-diplom-sankt-peterburg
Хорошей учебы!
оборудование для конференц зала готовые решения http://oborudovanie-dlja-konferenc-zalov.ru .
buy viagra online
Добрый день!
Полезная информация как официально купить диплом о высшем образовании
jrsjewellers.com/2024/06/29/купить-дипломы-университета/
Hello There. I found your blog the use of msn.
That is a really smartly written article. I’ll be sure to bookmark it and come back to read more of your useful information. Thank you for the post.
I will definitely return.
Здравствуйте!
Приобрести диплом о высшем образовании.
berforum.ru/gallery/image/8670-kak-nayti-nadezhnyy-internet-magazin-s-bolshim-vyborom-diplomov/?context=new
Sex ve Porno İzlemek için Harika bir Adres
payday loan
звуковое оборудование для конференц зала https://oborudovanie-dlja-konferenc-zalov.ru/ .
Удивительно, но купить диплом кандидата наук оказалось не так сложно
ast-diplomas.com/kupit-diplom-sankt-peterburg
Как приобрести аттестат о среднем образовании в Москве и других городах
ast-diplomy24.ru/kupit-diplom-omsk
Покупка диплома о среднем полном образовании: как избежать мошенничества?
ast-diploms24.ru/kupit-diplom-ekaterinbur
[u][b] Здравствуйте![/b][/u]
[b]Как правильно приобрести диплом колледжа или ПТУ в России, важные моменты [/b]
[url=http://teplo-hata.com.ua/users/uqonuxuk/]teplo-hata.com.ua/users/uqonuxuk[/url]
[u][b] Рады помочь![u][b].
Online poker
[u][b] Добрый день![/b][/u]
[b]Мы изготавливаем дипломы[/b] любой профессии по доступным ценам.
[url=http://kimhungimex.com/en/диплом-пустой-купить-2//]kimhungimex.com/en/диплом-пустой-купить-2/[/url]
Привет!
Приобрести документ о получении высшего образования вы имеете возможность в нашей компании.
ast-diplomy.com/kupit-diplom-krasnodar
buy cipro: cipro – cipro for sale
Привет, друзья!
Купить диплом ВУЗа.
revolverp.forumex.ru/viewtopic.php?f=11&t=217
Хорошей учебы!
generic amoxicillin: amoxicillin script – amoxicillin 500mg capsule cost
buy viagra online
Здравствуйте!
Стоимость дипломов высшего и среднего образования и как избежать подделок
metalxsports.com/купить-диплом-в-ижевске/
Привет, друзья!
Приобрести документ ВУЗа можно в нашем сервисе.
diploms-x.com/kupit-diplom-voronezh
Успешной учебы!