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

/ 44,057评论 / 216019阅读 / 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. Lazrctd说道:

    Привет!
    Мы изготавливаем дипломы любой профессии по выгодным ценам.
    lgzprojects.co.za/2024/06/30/куплю-диплом-рф/

  2. Lazrwvq说道:

    Привет!
    Мы предлагаем дипломы любых профессий по приятным ценам.
    kimhungimex.com/en/диплом-пустой-купить-2/

  3. Dnrtjsp说道:

    Привет!
    Приобрести документ института можно у нас.
    ast-diploms.com/kupit-diplom-magistra
    Хорошей учебы!

  4. BomesMix说道:

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

  5. Lazrhul说道:

    Привет, друзья!
    Купить диплом о высшем образовании.
    saluttunisia.com/jomsocial/groups/viewbulletin/267-shirokij-assortiment-dokumentov-v-izvestnom-magazine.html?groupid=101

  6. Uazrwaz说道:

    Здравствуйте!
    Где заказать диплом по нужной специальности?
    camp-fire.jp/profile/BernardCruz

  7. Manraee说道:

    Привет, друзья!
    Приобрести документ ВУЗа
    ast-diplom24.ru/kupit-diplom-magistra

  8. BomesMix说道:

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

  9. Diplomi_zlol说道:

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

  10. Dnrtado说道:

    Добрый день!
    Купить документ ВУЗа можно у нас в Москве.
    asxdiplomik.com/kupit-diplom-o-srednem-obrazovanii
    Успехов в учебе!

  11. Mazrjqy说道:

    Добрый день!
    Как получить диплом техникума с упрощенным обучением в Москве официально
    6neosolution.fr/2024/06/30/куплю-диплом-велики/

  12. очень классное порево http://www.klassny-sex.ru/ .

  13. Dnrtdsz说道:

    Привет, друзья!
    Приобрести документ университета можно у нас.
    ast-diplomas24.ru/otzyvy
    Хорошей учебы!

  14. Dnrtspw说道:

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

  15. Dnrtcaa说道:

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

  16. BomesMix说道:

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

  17. Lazrjih说道:

    Здравствуйте!
    Мы предлагаем дипломы психологов, юристов, экономистов и других профессий по приятным тарифам.
    datafornix.com/госзнак-диплом-купить/

  18. Xazrffd说道:

    Привет, друзья!
    Как официально приобрести аттестат 11 класса с минимальными затратами времени
    arusak-diploms-srednee.ru/diplom-sredne-spetcialnoe-obrazovanie В 

  19. Lazrrch说道:

    Добрый день!
    Приобрести диплом любого ВУЗа.
    forum.rucarp.ru/album.php?albumid=128&attachmentid=35737&commentid=1961

  20. Xazrxvh说道:

    Привет, друзья!
    Можно ли купить аттестат о среднем образовании? Основные рекомендации
    landik-diploms-srednee.ru/kupit-diplom-v-voronezhe В 

  21. Manreuo说道:

    Привет, друзья!
    Заказать документ ВУЗа
    ast-diplomy.com/kupit-diplom-ekaterinbur

  22. Xazrwlj说道:

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

  23. Manrniv说道:

    Привет, друзья!
    Купить документ ВУЗа
    diploms-x24.ru/kupit-diplom-voronezh

  24. BomesMix说道:

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

  25. классное порево видео http://klassny-sex.ru/ .

  26. Diplomi_oyol说道:

    Привет!
    Заказать документ о получении высшего образования вы имеете возможность в нашей компании в столице.
    ast-diploms.com/kupit-diplom-o-vysshem-obrazovanii 

  27. самое лучшее бесплатное порно http://www.best-free-porno.ru .

  28. классное порево видео klassny-sex.ru .

  29. BomesMix说道:

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

  30. Danrfrs说道:

    Привет, друзья!
    Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий.
    roving.club/read-blog/720_kak-vybrat-nadezhnyj-i-proverennyj-magazin-chto-realizuet-diplomy.html?mode=night
    Рады оказать помощь!.

  31. Anthonyplemy说道:

    Автомобільний портал https://allauto.kyiv.ua який захоплює своїми тест-драйвами та новими новинами автосвіту

  32. Jasonsurgy说道:

    Новини автомобільного ринку https://autoguide.kyiv.ua та автопромисловості

  33. Jimmiegag说道:

    Автомобільний портал https://autodream.com.ua новини та огляди новинок авторинку.

  34. Dnrtzif说道:

    Здравствуйте!
    Заказать документ института можно в нашей компании в Москве.
    diplomyx24.ru/kupit-diplom-sankt-peterburg
    Удачи!

  35. Mazrxww说道:

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

  36. Sazrely说道:

    Привет!
    Мы изготавливаем дипломы любой профессии по приятным ценам. Цена может зависеть от выбранной специальности, года получения и образовательного учреждения. Всегда стараемся поддерживать для заказчиков адекватную политику тарифов. Важно, чтобы документы были доступны для подавляющей массы наших граждан.
    toplentanews.ru/eksklyuzivnoe-obrazovanie-gde-kupit-diplom-vyisokogo-kachestva

  37. BomesMix说道:

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

  38. Diplomi_giol说道:

    Привет!
    Заказать документ о получении высшего образования можно у нас в Москве.
    ast-diplomy.com/kupit-diplom-kandidata-nauk 

  39. Dnrtqud说道:

    Привет!
    Приобрести документ ВУЗа можно у нас в Москве.
    diploms-x24.ru/kupit-diplom-voronezh
    Успехов в учебе!

  40. Diplomi_cqol说道:

    Здравствуйте!
    Купить документ о получении высшего образования вы имеете возможность в нашей компании в столице.
    asxdiplomik.com/kupit-diplom-specialista 

  41. Lazrdzt说道:

    Добрый день!
    Мы изготавливаем дипломы любых профессий по разумным тарифам.
    worldgonews.ru/diplomyi-ot-luchshih-vuzov

  42. Mazryae说道:

    Привет, друзья!
    Покупка диплома о среднем полном образовании: как избежать мошенничества?
    paul-services.co.uk/купить-диплом-в-канске/

  43. Mazrfri说道:

    Привет!
    Как купить диплом о высшем образовании с минимальными рисками
    sajadusta.com/купить-диплом-омск/

  44. BomesMix说道:

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

  45. Uazrrhh说道:

    Здравствуйте!
    Где купить диплом по нужной специальности?
    http://www.jointcorners.com/read-blog/78325

  46. I wanted to thank you for this good read!! I certainly enjoyed every bit of it. I’ve got you book-marked to check out new things you post…

  47. Trefmex说道:

    Добрый день!
    Покупка диплома о среднем полном образовании: как избежать мошенничества?
    yacina.net/купить-диплом-о-высшем-образовании-ре/
    Будем рады вам помочь!.

发表回复

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