前几天课设做个聊天系统,顺便实现了这个在程序外显示弹幕作为消息提示的功能,这里记录一下怎么搞。
目录
效果
思路
- 创建一个子窗口
- 将子窗口去掉窗口标题栏,设置背景透明
- 在里面放文本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("嘿嘿,我的洛天依");
}
}
}
问题
- 这个弹幕会被其他高层次的窗口遮挡,显然问题在于我们创建的窗口不是顶层窗口,这个后面再看看咋整。
В наше время, когда аттестат – это начало успешной карьеры в любом направлении, многие ищут максимально быстрый путь получения образования. Факт наличия официального документа переоценить невозможно. Ведь именно диплом открывает двери перед людьми, стремящимися вступить в профессиональное сообщество или учиться в университете.
Мы предлагаем очень быстро получить любой необходимый документ. Вы можете приобрести аттестат старого или нового образца, и это является отличным решением для всех, кто не смог завершить обучение, утратил документ или хочет исправить свои оценки. Аттестат изготавливается с особой аккуратностью, вниманием ко всем элементам, чтобы в результате получился 100% оригинальный документ.
Превосходство данного подхода заключается не только в том, что можно максимально быстро получить аттестат. Процесс организован удобно и легко, с нашей поддержкой. От выбора подходящего образца до консультаций по заполнению персональной информации и доставки в любой регион России — все будет находиться под полным контролем квалифицированных мастеров.
Всем, кто хочет найти быстрый и простой способ получения необходимого документа, наша компания может предложить выгодное решение. Купить аттестат – это значит избежать длительного процесса обучения и сразу перейти к важным целям, будь то поступление в университет или начало карьеры.
https://diplomans-rossians.com/
tadalafil online nz
В нашем обществе, где диплом – это начало успешной карьеры в любой отрасли, многие ищут максимально быстрый и простой путь получения качественного образования. Факт наличия документа об образовании сложно переоценить. Ведь диплом открывает дверь перед всеми, кто собирается вступить в сообщество профессионалов или продолжить обучение в высшем учебном заведении.
В данном контексте мы предлагаем максимально быстро получить любой необходимый документ. Вы можете купить диплом, и это является удачным решением для всех, кто не смог завершить образование, потерял документ или хочет исправить плохие оценки. Любой диплом изготавливается аккуратно, с особым вниманием к мельчайшим деталям. В результате вы сможете получить документ, максимально соответствующий оригиналу.
Преимущество такого подхода заключается не только в том, что можно оперативно получить свой диплом. Процесс организовывается комфортно и легко, с нашей поддержкой. От выбора требуемого образца диплома до точного заполнения личной информации и доставки по России — все под абсолютным контролем наших мастеров.
Для тех, кто хочет найти быстрый и простой способ получить необходимый документ, наша компания предлагает выгодное решение. Приобрести диплом – значит избежать длительного процесса обучения и сразу переходить к своим целям, будь то поступление в ВУЗ или старт карьеры.
https://diploman-russiyans.com
discount cialis 5mg
buy prinivil online
online pharmacy meds
На этом сайте https://www.rabota-zarabotok.ru/ вы найдете полезную информацию, и отзывы о разных финансовых сайтах. Здесь очень много полезной информации, и разоблачение мошенников. А также узнайте где начать зарабатывать первые деньги в интернете.
glucophage xr
buy lisinopril 40 mg tablet lisinopril cost us lisinopril 20 mg sale
buy tadalafil 20mg price canada
This was beautiful Admin. Thank you for your reflections.
I do not even understand how I ended up here, but I assumed this publish used to be great
http://cytotec.club/# buy cytotec online fast delivery
tamoxifen citrate: tamoxifen for men – tamoxifen cost
purchase cipro: buy cipro online – ciprofloxacin mail online
propecia pill: buy generic propecia without insurance – buying generic propecia without prescription
generic synthroid cost
can i buy valtrex online
azithromycin cost canada
cipro 500mg best prices: cipro online no prescription in the usa – purchase cipro
cost of cheap propecia buy cheap propecia without insurance cheap propecia tablets
cost propecia without rx get generic propecia online cost of propecia tablets
https://nolvadex.life/# tamoxifen hormone therapy
tvlore.com
따라서 일부 미친 사람들은 마차에 30 ~ 40 명을 채웠습니다.
buy propecia no prescription buying generic propecia without insurance buying generic propecia without dr prescription
synthroid price comparison
reputable online pharmacy no prescription
online pharmacy discount code 2018
какие биметаллических радиаторы отопления выбрать
cialis from canada pharmacy
zestril 10 mg price in india lisinopril 20 mg canadian zestoretic 20
tintucnamdinh24h.com
적나라한 질투는 눈을 충혈시키고 유난히 새빨개지게 만들었다.
watch porn video
В современном мире, где диплом становится началом удачной карьеры в любой области, многие ищут максимально быстрый путь получения качественного образования. Наличие документа об образовании переоценить невозможно. Ведь диплом открывает двери перед каждым человеком, который стремится вступить в сообщество профессиональных специалистов или продолжить обучение в высшем учебном заведении.
Мы предлагаем оперативно получить этот важный документ. Вы сможете купить диплом нового или старого образца, и это будет отличным решением для всех, кто не смог закончить обучение или потерял документ. диплом изготавливается аккуратно, с особым вниманием ко всем деталям. В результате вы сможете получить полностью оригинальный документ.
Преимущество этого решения заключается не только в том, что вы быстро получите диплом. Весь процесс организовывается удобно, с нашей поддержкой. От выбора требуемого образца до грамотного заполнения личных данных и доставки в любой регион России — все находится под полным контролем опытных мастеров.
В итоге, для тех, кто ищет максимально быстрый способ получить требуемый документ, наша услуга предлагает отличное решение. Приобрести диплом – это значит избежать длительного обучения и сразу перейти к своим целям, будь то поступление в университет или начало карьеры.
https://diploman-rossiya.com
where to purchase tadalafil
tadalafil tablets 5mg
buy misoprostol over the counter: buy cytotec online fast delivery – cytotec abortion pill
price of tadalafil
buy viagra online
canadian pharmacy mall
azithromycin 2018
https://cytotec.club/# buy cytotec pills
buy cipro online without prescription buy cipro online buy ciprofloxacin
payday loan
ciprofloxacin generic ciprofloxacin order online purchase cipro
prednisone no rx
http://lisinopril.network/# prinivil 10 mg tablet
zestril drug: lisinopril cost 5mg – buy lisinopril 10 mg
100 mg synthroid buy
cipro ciprofloxacin: ciprofloxacin order online – cipro ciprofloxacin