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

/ 52,215评论 / 256934阅读 / 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. Williamtok说道:

    Здравствуйте!
    Наша компания предлагает выгодно заказать диплом, который выполнен на оригинальном бланке и заверен мокрыми печатями, штампами, подписями. Документ пройдет лубую проверку, даже при помощи профессионального оборудования. Достигайте своих целей максимально быстро с нашим сервисом.
    play.ntop.tv/index.php?subaction=userinfo&user=ilapogu
    Успешной учебы!

  2. Sazrqit说道:

    Привет!
    Как официально купить аттестат 11 класса с упрощенным обучением в Москве
    kharkov-balka.com/showthread.php?p=154904#post154904
    Рады оказать помощь!.

  3. магазин аккаунтов и ключей http://magazin-akkauntov.ru .

  4. Sazrbcp说道:

    Привет, друзья!
    Стоимость дипломов высшего и среднего образования и как избежать подделок
    bestworld.getbb.ru/viewtopic.php?f=8&t=1260
    Поможем вам всегда!.

  5. Michaelpiepe说道:

    cheapest online pharmacy india: online shopping pharmacy india – reputable indian pharmacies

  6. Dnrtobd说道:

    Привет, друзья!
    Купить документ университета вы имеете возможность в нашей компании.
    ast-diplomas24.ru/kupit-diplom-rostov-na-donu
    Успехов в учебе!

  7. Charlestaf说道:

    canadian drug pharmacy legit canadian online pharmacy best online canadian pharmacy

  8. Xazrime说道:

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

  9. Michaelpiepe说道:

    buying prescription drugs in mexico: buying prescription drugs in mexico – buying prescription drugs in mexico online

  10. Xazrfft说道:

    Здравствуйте!
    Купить диплом любого ВУЗа
    arusak-diploms-srednee.ru/svidetelstvo-o-brake В 
    Хорошей учебы!

  11. Michaelpiepe说道:

    ed drugs online from canada: canadian pharmacy king – canadian pharmacies online

  12. Manruyh说道:

    Добрый день!
    Где приобрести диплом по актуальной специальности?
    Мы предлагаем документы институтов, которые расположены на территории всей России. Вы сможете приобрести качественно сделанный диплом за любой год, указав подходящую специальность и оценки за все дисциплины. Дипломы делаются на бумаге самого высшего качества. Это дает возможности делать государственные дипломы, которые невозможно отличить от оригиналов. Они будут заверены всеми необходимыми печатями и штампами.
    Мы изготавливаем дипломы любой профессии по приятным тарифам.
    ast-diploms24.ru/otzyvy
    Поможем вам всегда!

  13. Charlestaf说道:

    world pharmacy india india pharmacy mail order top 10 pharmacies in india

  14. EdwardKib说道:

    https://canadapharmast.com/# legit canadian pharmacy online

  15. Michaelpiepe说道:

    medication from mexico pharmacy: reputable mexican pharmacies online – buying from online mexican pharmacy

  16. BomesMix说道:

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

  17. Michaelpiepe说道:

    reputable indian pharmacies: india pharmacy – online pharmacy india

  18. DavidWaype说道:

    onlinecanadianpharmacy: online canadian pharmacy – canadian pharmacy prices

  19. Yrefgsd说道:

    Добрый день!
    Приобрести диплом ВУЗа.
    epicit.ru/zakazat-sertifikatyi-o-dopolnitelnom-obuchenii
    Успешной учебы!

  20. Michaelpiepe说道:

    top online pharmacy india: reputable indian pharmacies – reputable indian online pharmacy

  21. EdwardKib说道:

    http://foruspharma.com/# mexican online pharmacies prescription drugs

  22. Razrutc说道:

    Здравствуйте!
    Наша компания предлагает купить диплом высокого качества, который не отличить от оригинального документа без участия специалистов высокой квалификации со сложным оборудованием.
    legislador.art.br/forum/viewtopic.php?p=101278#p101278
    Удачи!

  23. DavidWaype说道:

    п»їbest mexican online pharmacies: mexican online pharmacies prescription drugs – mexico pharmacy

  24. Lazrkuv说道:

    Здравствуйте!
    Где заказать диплом специалиста?
    Заказать диплом о высшем образовании.
    lp24.ru/advice/obsirnyi-vybor-dokumentov-v-izvestnom-onlain-magazine

  25. Charlestaf说道:

    world pharmacy india pharmacy website india buy medicines online in india

  26. Michaelpiepe说道:

    reputable canadian pharmacy: my canadian pharmacy review – medication canadian pharmacy

  27. Cazrryv说道:

    Привет!
    Мы готовы предложить документы техникумов, расположенных в любом регионе Российской Федерации. Можно заказать диплом от любого учебного заведения, за любой год, в том числе документы старого образца. Документы выпускаются на бумаге самого высшего качества. Это позволяет делать государственные дипломы, которые невозможно отличить от оригиналов. Они заверяются всеми обязательными печатями и штампами.
    viracore.one/read-blog/116

  28. DavidWaype说道:

    best india pharmacy: indian pharmacy online – indianpharmacy com

  29. Dnrtmmg说道:

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

  30. Dnrtuyu说道:

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

  31. Charlestaf说道:

    reputable mexican pharmacies online purple pharmacy mexico price list mexican pharmacy

  32. Danryyz说道:

    Привет, друзья!
    Где приобрести диплом по актуальной специальности?
    Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий по приятным тарифам. Цена будет зависеть от выбранной специальности, года получения и университета. Всегда стараемся поддерживать для заказчиков адекватную политику цен. Важно, чтобы документы были доступны для большого количества граждан.
    Для вас изготавливаем дипломы любых профессий по приятным ценам.
    montrealpal.com/read-blog/815_kak-najti-nadezhnyj-magazin-prodayushij-diplomy.html
    Будем рады вам помочь!.

  33. Sazrdfp说道:

    Добрый день!
    Как приобрести диплом о среднем образовании в Москве и других городах
    http://www.pets-ural.ru/content/forum/viewtopic.php?p=79512#79512
    Рады помочь!.

  34. BomesMix说道:

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

  35. Charlestaf说道:

    canadian pharmacy world canadian pharmacy near me best rated canadian pharmacy

  36. Xazrnzx说道:

    Здравствуйте!
    Приобрести диплом любого ВУЗа
    arusak-diploms-srednee.ru/kupit-diplom-v-rostove-na-donu В 
    Хорошей учебы!

  37. EdwardKib说道:

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

  38. Charlestaf说道:

    top 10 online pharmacy in india top 10 pharmacies in india top online pharmacy india

  39. Diplomi_cmSt说道:

    сколько стоит купить аттестат за 9 класс asxdiplomik24.ru .

  40. EdwardKib说道:

    https://canadapharmast.com/# canadian drug pharmacy

  41. EdwardKib说道:

    https://indiapharmast.com/# buy prescription drugs from india

  42. Trefrdr说道:

    Здравствуйте!
    Как приобрести диплом о среднем образовании в Москве и других городах
    propusk-spb.ru/index.php?subaction=userinfo&user=ytazetok
    Будем рады вам помочь!.

  43. Diplomi_vgsr说道:

    купить дипломы об окончании техникума купить дипломы об окончании техникума .

  44. Sarasota Florida说道:

    Excellent post. I am experiencing many of these issues as well..

  45. DavidWaype说道:

    mexico drug stores pharmacies: mexican mail order pharmacies – buying from online mexican pharmacy

  46. DavidWaype说道:

    medicine in mexico pharmacies: mexico pharmacy – mexico drug stores pharmacies

  47. Lariorpvg说道:

    Покупка диплома о среднем полном образовании: как избежать мошенничества?
    ast-diplomy24.ru/kupit-diplom-omsk

发表回复

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