前几天课设做个聊天系统,顺便实现了这个在程序外显示弹幕作为消息提示的功能,这里记录一下怎么搞。
目录
效果
思路
- 创建一个子窗口
- 将子窗口去掉窗口标题栏,设置背景透明
- 在里面放文本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("嘿嘿,我的洛天依");
}
}
}
问题
- 这个弹幕会被其他高层次的窗口遮挡,显然问题在于我们创建的窗口不是顶层窗口,这个后面再看看咋整。
классное порево онлайн классное порево онлайн .
Lorem Ipsum has been the industry’s standard dummy text https://lupo1987.dk/tynpwcw of type and scrambled it to make a type specimen book.
generic for diflucan
Привет!
Где купить диплом по необходимой специальности?
dzone.com/users/5166875/leonardchambers.html
Привет, друзья!
Где купить диплом по необходимой специальности?
http://www.eSurveysPro.com/Survey.aspx?id=19d83309-26ea-40b3-adbc-dbe80bd1adf3
Привет!
Мы изготавливаем дипломы любой профессии по доступным ценам.
leicestercityfansclub.com/read-blog/2080_kak-mozhno-budet-kupit-sejchas-kachestvennyj-diplom-v-seti.html
Привет, друзья!
Приобрести документ института можно в нашем сервисе.
diploms-x24.ru/kupit-diplom-omsk
Хорошей учебы!
Привет, друзья!
Приобрести документ о получении высшего образования вы можете у нас.
ast-diploms.com/kupit-diplom-chelyabinsk
Добрый день!
Мы изготавливаем дипломы любой профессии.
twanty2.com/read-blog/168_kak-podobrat-nadezhnyj-internet-magazin-chto-realizuet-dokumenty.html
Будем рады вам помочь!.
Добрый день!
Заказать диплом университета.
http://www.jointcorners.com/read-blog/78249
Lorem Ipsum has been the industry’s standard dummy text https://tuttomedicale.it/difiy of type and scrambled it to make a type specimen book.
Привет, друзья!
Заказать диплом о высшем образовании.
kharkov-balka.com/showthread.php?p=154755#post154755
Мазь для суставов https://sustalits.ru заказать онлайн.
This is a great tip especially to those fresh to the blogosphere. Simple but very accurate information… Thank you for sharing this one. A must read post!
Lorem Ipsum has been the industry’s standard dummy text https://ekoworki.pl/nmplj of type and scrambled it to make a type specimen book.
Добрый день!
Как не попасть впросак при покупке диплома колледжа или ПТУ в России
arusak-diploms-srednee.ru/kupit-diplom-magistra В
Привет, друзья!
Купить диплом старого образца, можно ли это сделать по быстрой схеме?
phugiabetong.vn/диплом-аттестаты-купить
Привет, друзья!
Заказать документ о получении высшего образования
diplomyx24.ru/kupit-diplom-ekaterinbur
Здравствуйте!
Мы изготавливаем дипломы любой профессии по приятным ценам.
http://www.sermadiesel.com.pe/2024/06/30/купить-диплом-спо/
Добрый день!
Мы предлагаем дипломы психологов, юристов, экономистов и любых других профессий по невысоким тарифам.
karhu.blueaddlution.com/2024/06/30/купить-диплом-в-серове/
Добрый день!
Приобрести документ института вы имеете возможность у нас.
ast-diplom24.ru/kupit-diplom-magistra
Успехов в учебе!
Привет!
Купить документ университета вы имеете возможность у нас.
diploms-x.com/kupit-diplom-magistra
Хорошей учебы!
Здравствуйте!
Приобрести документ института вы можете в нашей компании в столице.
ast-diplomy.com/kupit-diplom-perm
Здравствуйте!
Заказать документ университета вы имеете возможность в нашем сервисе.
ast-diplomas.com/kupit-diplom-tehnikuma-kolledzha
Привет, друзья!
Заказать документ университета можно в нашем сервисе.
diplomyx.com/kupit-diplom-bakalavra-ili-specialista
Lorem Ipsum has been the industry’s standard dummy text https://fotoquo.es/xflputz of type and scrambled it to make a type specimen book.
viagra from mexico
car rental in Podgorica rental cars Montenegro
Привет!
Заказать диплом о высшем образовании.
ccde-cambodia.com/cb-profile/pluginclass/cbblogs.html?action=blogs&func=show&id=118
Изготовление металлических навесов для автомобиля в Санкт-Петербурге https://trudolubov.com/product/navesy/. Цены на сайте.
Газоблоки https://gasoblok.ru являются самым популярным материалом для строительства домов из газобетона, они стали эффективной, надежной и недорогой технологией. Качественные газобетонные блоки производятся промышленным способом и обрабатываются в специальных автоклавах.
Mixing Reinvented ChipMixer For Your Privacy
Привет, друзья!
Приобрести диплом о высшем образовании.
licomklicu.ru/read-blog/885
buy cipro without rx: cipro for sale – purchase cipro
A fascinating discussion is definitely worth comment. I do think that you ought to publish more about this issue, it might not be a taboo matter but typically people do not talk about these topics. To the next! All the best.
Lorem Ipsum has been the industry’s standard dummy text https://durgaspa.in/ytbxfqu of type and scrambled it to make a type specimen book.
amoxicillin online no prescription: amoxicillin 500mg capsules antibiotic – amoxicillin azithromycin
Привет, друзья!
Купить диплом о высшем образовании.
sonnick84.blogdemls.com/28009404/%D0%93%D1%80%D0%B0%D0%BC%D0%BE%D1%82%D0%BD%D0%BE-%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D0%B5%D0%BC-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%B2-%D1%81%D0%B5%D1%82%D0%B8-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80
Привет, друзья!
Мы изготавливаем дипломы психологов, юристов, экономистов и других профессий по выгодным тарифам.
acupressurewala.com/2024/06/30/купить-диплом-геолога/
amoxicillin order online: amoxicillin 500mg cost – amoxicillin 250 mg
Добрый день!
Приобрести документ о получении высшего образования вы можете в нашей компании в столице.
ast-diploms24.ru/kupit-diplom-rostov-na-donu
Хорошей учебы!
1924948 baclofen
Way cool! Some very valid points! I appreciate you writing this post and the rest of the website is extremely good.
Lorem Ipsum has been the industry’s standard dummy text https://vastuastro.in/jlxyt of type and scrambled it to make a type specimen book.
Привет!
Купить документ о получении высшего образования можно у нас.
ast-diplomas.com/kupit-diplom-perm
22 doxycycline: order doxycycline canada – doxycycline for sale uk
Добрый день!
Как приобрести диплом техникума с минимальными рисками
higherranker.com/купить-диплом-проверенные-способы/
Поможем вам всегда!.
retin a online from canada
Привет, друзья!
Официальная покупка диплома вуза с сокращенной программой в Москве
arusak-diploms-srednee.ru/kupit-diplom-v-krasnodare В
amoxicillin 200 mg tablet: amoxicillin online purchase – amoxicillin 875 125 mg tab