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

/ 52,231评论 / 256989阅读 / 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. Lariorvwo说道:

    Полезная информация как купить диплом о высшем образовании без рисков
    diploms-x.com/kupit-diplom-voronezh

  2. Charlestaf说道:

    best online pharmacies in mexico [url=http://foruspharma.com/#]buying prescription drugs in mexico[/url] mexico drug stores pharmacies

  3. Lariorxzd说道:

    Сколько стоит получить диплом высшего и среднего образования легально?
    diploms-x.com/kupit-diplom-moskva

  4. DavidWaype说道:

    buy medicines online in india: Online medicine order – indian pharmacy online

  5. Charlestaf说道:

    mexican drugstore online purple pharmacy mexico price list mexican online pharmacies prescription drugs

  6. Charlestaf说道:

    best online pharmacies in mexico mexican mail order pharmacies mexico drug stores pharmacies

  7. DavidWaype说道:

    pharmacy rx world canada: canada drugs reviews – canadian neighbor pharmacy

  8. BomesMix说道:

    Lorem Ipsum has been the industry’s standard dummy text https://umcompany.it/qtmfw of type and scrambled it to make a type specimen book.

  9. Cazrplj说道:

    Привет, друзья!
    Мы готовы предложить документы ВУЗов, расположенных на территории всей Российской Федерации. Можно приобрести диплом за любой год, указав необходимую специальность и хорошие оценки за все дисциплины. Документы делаются на “правильной” бумаге высшего качества. Это дает возможности делать государственные дипломы, не отличимые от оригинала. Документы будут заверены необходимыми печатями и штампами.
    shoelovershub.com/read-blog/2531_legko-pokupaem-attestat-v-izvestnom-onlajn-magazine-russian-diplom.html

  10. DavidWaype说道:

    mexico drug stores pharmacies: mexican online pharmacies prescription drugs – mexico pharmacy

  11. EdwardKib说道:

    http://canadapharmast.com/# canadian pharmacy ratings

  12. DavidWaype说道:

    canada pharmacy 24h: cheapest pharmacy canada – the canadian drugstore

  13. Charlestaf说道:

    canadian mail order pharmacy canada pharmacy online reputable canadian pharmacy

  14. DavidWaype说道:

    buy prescription drugs from canada cheap: best online canadian pharmacy – safe reliable canadian pharmacy

  15. Xazreqj说道:

    Добрый день!
    Заказать диплом любого университета
    landik-diploms-srednee.ru/attestat-shkoly В 
    Хорошей учебы!

  16. EdwardKib说道:

    https://indiapharmast.com/# online shopping pharmacy india

  17. Sazraft说道:

    Здравствуйте!
    Быстрая схема покупки диплома старого образца: что важно знать?
    club2108.ru/forum/viewtopic.php?pid=190525#p190525
    Рады оказать помощь!.

  18. Sazrsyb说道:

    Привет!
    Удивительно, но купить диплом кандидата наук оказалось не так сложно
    allsportime.ru/kupite-diplom-i-zabudte-o-studencheskih-problemah
    Поможем вам всегда!.

  19. Dnrtrdg说道:

    Здравствуйте!
    Приобрести документ о получении высшего образования можно у нас в столице.
    diplomasx24.ru/kupit-diplom-magistra
    Успешной учебы!

  20. Cazrqcg说道:

    Добрый день!
    Мы предлагаем документы техникумов, которые расположены на территории всей Российской Федерации. Можно купить качественный диплом за любой год, включая документы старого образца СССР. Дипломы и аттестаты выпускаются на “правильной” бумаге самого высокого качества. Это позволяет делать настоящие дипломы, которые невозможно отличить от оригинала. Они заверяются необходимыми печатями и подписями.
    powerofthelamb.mn.co/posts/61828768

  21. DavidWaype说道:

    buying prescription drugs in mexico online: mexican rx online – buying from online mexican pharmacy

  22. Cazrufp说道:

    Здравствуйте!
    Мы можем предложить документы ВУЗов, которые расположены в любом регионе РФ. Можно приобрести диплом за любой год, указав подходящую специальность и хорошие оценки за все дисциплины. Дипломы и аттестаты выпускаются на бумаге высшего качества. Это позволяет делать настоящие дипломы, которые невозможно отличить от оригинала. Они заверяются всеми обязательными печатями и подписями.
    bookgospel.org/blogs/1286/%D0%A1-%D0%BB%D0%B5%D0%B3%D0%BA%D0%BE%D1%81%D1%82%D1%8C%D1%8E-%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-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5-Russian-Diplom

  23. Diplomi_erol说道:

    Добрый день!
    Заказать документ института можно в нашей компании в столице.
    ast-diplomas.com/kupit-diplom-omsk

  24. Michaelpiepe说道:

    best canadian pharmacy: safe canadian pharmacy – cheap canadian pharmacy online

  25. Xazrgvg说道:

    Привет!
    Приобрести диплом о высшем образовании
    arusak-diploms-srednee.ru/kupit-diplom-magistra В 
    Хорошей учебы!

  26. Xazrasr说道:

    Здравствуйте!
    Заказать диплом ВУЗа
    landik-diploms-srednee.ru/kupit-diplom-v-ekaterinburge В 
    Успехов в учебе!

  27. Xazrmbz说道:

    Добрый день!
    Купить диплом о высшем образовании
    landik-diploms-srednee.ru/diplom-s-reestromkupit-kupit В 
    Удачи!

  28. Sazrhzj说道:

    Привет, друзья!
    Официальное получение диплома техникума с упрощенным обучением в Москве
    zoofortunakz.5nx.ru/posting.php?mode=post&f=96&sid=243fcd228cbef3e00e42224c10ae6978
    Рады оказаться полезными!.

  29. Sazrfzs说道:

    Привет!
    Купить диплом о среднем полном образовании, в чем подвох и как избежать обмана?
    irishpal.com/read-blog/921
    Поможем вам всегда!.

  30. Michaelpiepe说道:

    canada ed drugs: vipps canadian pharmacy – onlinepharmaciescanada com

  31. Charlestaf说道:

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

  32. Sazrsgg说道:

    Привет!
    Приобретение диплома ВУЗа с сокращенной программой обучения в Москве
    plut-uchukov.flybb.ru/viewtopic.php?f=1&t=498&sid=dc982212e940a8d352a34ed17ccb8bf9
    Рады помочь!.

  33. BomesMix说道:

    Lorem Ipsum has been the industry’s standard dummy text https://nadpoprzeczka.pl/dpbbee of type and scrambled it to make a type specimen book.

  34. Lazrkia说道:

    Здравствуйте!
    Мы изготавливаем дипломы психологов, юристов, экономистов и любых других профессий по невысоким тарифам.
    russiajoy.ru/oformlenie-diploma-onlayn-za-neskolko-shagov

  35. Charlestaf说道:

    canadian pharmacy checker canada ed drugs canadian medications

  36. Charlestaf说道:

    india online pharmacy online shopping pharmacy india top 10 online pharmacy in india

  37. Lazrcfk说道:

    Привет, друзья!
    Где заказать диплом специалиста?
    Заказать диплом университета.
    http://www.yur-dom.ru/communication/forum/messages/forum3/message242/285-bolshoy-vybor-dokumentov-v-izvestnom-internet_magazine?result=new

  38. Michaelpiepe说道:

    best online pharmacies in mexico: mexican pharmaceuticals online – reputable mexican pharmacies online

  39. EdwardKib说道:

    https://indiapharmast.com/# top 10 online pharmacy in india

  40. Michaelpiepe说道:

    indianpharmacy com: cheapest online pharmacy india – indian pharmacy paypal

  41. DavidWaype说道:

    canadian drugs: pharmacy com canada – canadian pharmacy online ship to usa

  42. EdwardKib说道:

    https://canadapharmast.online/# cross border pharmacy canada

  43. Trefqsy说道:

    Привет, друзья!
    Как получить диплом техникума официально и без лишних проблем
    igia.cv.ua/index.php/forum/skrin-ka-propozitsij/1719-nado-bystro-zakazat-diplom-ob-obrazovanii#326243
    Рады оказаться полезными!.

  44. Diplomi_yrel说道:

    купить диплом о неполном высшем образовании купить диплом о неполном высшем образовании .

  45. Dnrtglu说道:

    Добрый день!
    Купить документ института можно в нашем сервисе.
    ast-diploms.com/kupit-diplom-sankt-peterburg
    Хорошей учебы!

  46. DavidWaype说道:

    mexican drugstore online: mexican pharmacy – mexico drug stores pharmacies

发表回复

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