[Qt/qml]程序之外显示的弹幕

/ 44,222评论 / 217182阅读 / 4点赞

前几天课设做个聊天系统,顺便实现了这个在程序外显示弹幕作为消息提示的功能,这里记录一下怎么搞。

效果

思路

实操

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
        }
    }
}
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("嘿嘿,我的洛天依");
        }
    }
}

问题

  1. DominicHOr说道:

    reputable mexican pharmacies online: pharmacies in mexico that ship to usa – buying from online mexican pharmacy

  2. Lazrwbb说道:

    Добрый день!
    Купить диплом любого университета.
    k96586v0.beget.tech/component/comprofiler/pluginclass/cbblogs?action=blogs&func=show&id=140

  3. Uazrhxv说道:

    Привет, друзья!
    Где заказать диплом по нужной специальности?
    obt.social/blogs/21773/Where-to-buy-a-diploma-at-an-adequate-price?lang=ar_sa

  4. DominicHOr说道:

    mexican drugstore online: mexican online pharmacies prescription drugs – pharmacies in mexico that ship to usa

  5. Arnoldscava说道:

    medicine in mexico pharmacies mexican online pharmacies prescription drugs mexican drugstore online

  6. Arnoldscava说道:

    п»їbest mexican online pharmacies best online pharmacies in mexico mexican pharmaceuticals online

  7. Arnoldscava说道:

    п»їbest mexican online pharmacies mexico drug stores pharmacies mexican drugstore online

  8. NelsonSaIlk说道:

    п»їbest mexican online pharmacies: mexican drugstore online – reputable mexican pharmacies online

  9. RichardMonge说道:

    https://mexicandeliverypharma.online/# purple pharmacy mexico price list

  10. Trefbiz说道:

    Здравствуйте!
    Как официально купить диплом вуза с упрощенным обучением в Москве
    gaigoimoinhat.xyz/купить-диплом-о-высшем-образовании-со
    Рады оказать помощь!.

  11. Lazrkjf说道:

    Привет, друзья!
    Купить диплом любого ВУЗа.
    drevtorg.xyz/profiles/blogs/6382903:BlogPost:356801

  12. Arnoldscava说道:

    п»їbest mexican online pharmacies [url=http://mexicandeliverypharma.com/#]pharmacies in mexico that ship to usa[/url] mexico drug stores pharmacies

  13. Lazrefz说道:

    Здравствуйте!
    Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий по доступным ценам.
    newmedtime.ru/vyisshee-obrazovanie-za-sutki-legalno-i-nadezhno

  14. Diplomi_xaol说道:

    Привет, друзья!
    Приобрести документ университета можно в нашей компании в столице.
    ast-diplom.com/kupit-diplom-krasnodar

  15. Arnoldscava说道:

    mexican pharmacy mexican online pharmacies prescription drugs mexican rx online

  16. Arnoldscava说道:

    medicine in mexico pharmacies medicine in mexico pharmacies п»їbest mexican online pharmacies

  17. Dnrtpod说道:

    Добрый день!
    Приобрести документ института вы имеете возможность у нас.
    ast-diploms24.ru/otzyvy
    Успешной учебы!

  18. RichardMonge说道:

    https://mexicandeliverypharma.online/# medicine in mexico pharmacies

  19. Waynetar说道:

    mexico drug stores pharmacies: mexico drug stores pharmacies – pharmacies in mexico that ship to usa

  20. стоимость создания сайта http://www.biztest.ru .

  21. Uazreye说道:

    Привет!
    Приобрести диплом университета.
    ou812chat.com/read-blog/1168

  22. DominicHOr说道:

    п»їbest mexican online pharmacies: pharmacies in mexico that ship to usa – medicine in mexico pharmacies

  23. Arnoldscava说道:

    reputable mexican pharmacies online mexican drugstore online medicine in mexico pharmacies

  24. Waynetar说道:

    п»їbest mexican online pharmacies: mexican border pharmacies shipping to usa – best online pharmacies in mexico

  25. DominicHOr说道:

    purple pharmacy mexico price list: best online pharmacies in mexico – buying prescription drugs in mexico

  26. Dnrtsim说道:

    Привет, друзья!
    Купить документ о получении высшего образования можно в нашей компании.
    ast-diplomy.com/kupit-diplom-krasnoyarsk
    Успешной учебы!

  27. RichardMonge说道:

    http://mexicandeliverypharma.com/# п»їbest mexican online pharmacies

  28. Dnrtvrc说道:

    Добрый день!
    Купить документ о получении высшего образования вы можете в нашей компании в Москве.
    ast-diplomas24.ru/kupit-diplom-omsk
    Хорошей учебы!

  29. Arnoldscava说道:

    pharmacies in mexico that ship to usa mexican pharmacy mexico pharmacies prescription drugs

  30. Waynetar说道:

    mexico drug stores pharmacies: п»їbest mexican online pharmacies – medication from mexico pharmacy

  31. DominicHOr说道:

    buying prescription drugs in mexico online: purple pharmacy mexico price list – buying prescription drugs in mexico online

  32. Arnoldscava说道:

    mexican pharmacy mexican online pharmacies prescription drugs mexico drug stores pharmacies

  33. Arnoldscava说道:

    mexican rx online mexican mail order pharmacies п»їbest mexican online pharmacies

  34. RichardMonge说道:

    https://mexicandeliverypharma.com/# mexican drugstore online

  35. RichardMonge说道:

    http://mexicandeliverypharma.com/# mexican border pharmacies shipping to usa

  36. Lazrfyw说道:

    Привет!
    Приобрести диплом университета.
    k96586v0.beget.tech/component/comprofiler/pluginclass/cbblogs?action=blogs&func=show&id=140

  37. Lazrqfl说道:

    Добрый день!
    Мы изготавливаем дипломы психологов, юристов, экономистов и других профессий по приятным ценам.
    angelicaleyva.es/где-купить-диплом-о-высшем-образовани

  38. Waynetar说道:

    mexico drug stores pharmacies: reputable mexican pharmacies online – mexican rx online

  39. DominicHOr说道:

    mexico pharmacies prescription drugs: mexican mail order pharmacies – mexico pharmacies prescription drugs

  40. Mazrucj说道:

    Добрый день!
    Официальная покупка аттестата о среднем образовании в Москве и других городах
    mandiplomikx.ru

  41. Manrlym说道:

    Привет, друзья!
    Приобрести документ о получении высшего образования
    ast-diploms.com/kupit-diplom-ekaterinbur

  42. Trefkwl说道:

    Привет!
    Приобретение диплома ПТУ с сокращенной программой обучения в Москве
    dadiler.com/купить-диплом-советы-и-рекомендации
    Рады оказать помощь!.

  43. Xazrcjh说道:

    Привет!
    Рекомендации по безопасной покупке диплома о высшем образовании
    landik-diploms-srednee.ru/attestat-shkoly

  44. Treflna说道:

    Добрый день!
    Как правильно приобрести диплом колледжа или ПТУ в России, важные моменты
    kabtaferplus.com/купить-диплом-советы-и-рекомендации
    Поможем вам всегда!.

  45. Lazrcps说道:

    Здравствуйте!
    Мы предлагаем дипломы любой профессии по разумным тарифам.
    rsn360.ru/blogs/427/¬аш-?иплом- ачество-и-ѕодлинность

  46. Waynetar说道:

    buying prescription drugs in mexico online: mexico drug stores pharmacies – buying prescription drugs in mexico

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注