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

/ 52,165评论 / 256791阅读 / 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. Jamesjer说道:

    where to buy clomid without dr prescription: can i buy clomid for sale – can you buy generic clomid without a prescription

  2. Mazrrcx说道:

    Добрый день!
    Как приобрести диплом о среднем образовании в Москве и других городах
    make-coin.ru/legkiy-sposob-poluchit-diplom-onlayn

  3. Dnrtkhs说道:

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

  4. Diplomi_ecol说道:

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

  5. ThomasInace说道:

    http://clomiddelivery.pro/# can i get clomid without dr prescription

  6. Yrefnok说道:

    Добрый день!
    Заказать диплом о высшем образовании.
    anomalnews.ru/wp-login.php?action=rp&key=icqTRMlZSxWyUnOdAr2Q&login=miguelpAcags
    Удачи!

  7. Xazrlcm说道:

    Привет, друзья!
    Официальная покупка диплома вуза с сокращенной программой в Москве
    landik-diploms-srednee.ru/kupit-diplom-v-novosibirske В 

  8. ThomasInace说道:

    http://paxloviddelivery.pro/# Paxlovid over the counter

  9. Lazrjal说道:

    Привет!
    Где купить диплом по нужной специальности?
    Заказать диплом ВУЗа.
    forum.fiat-club.ru/blog_post.php?do=updateblog&blogid=

  10. Jamesjer说道:

    azithromycin amoxicillin: generic for amoxicillin – buy amoxicillin 500mg canada

  11. Lazrspb说道:

    Здравствуйте!
    Где заказать диплом специалиста?
    Приобрести диплом любого ВУЗа.
    http://www.startspresto.ru/cb-profile/pluginclass/cbblogs?action=blogs&func=show&id=145

  12. Lazrfkj说道:

    Добрый день!
    Где заказать диплом специалиста?
    Приобрести диплом о высшем образовании.
    86hm.ru/forum/flame/?topic_id=25095

  13. Diplomi_ldmn说道:

    диплом купить о среднем ast-diploms.com .

  14. Trefskn说道:

    Добрый день!
    Стоимость дипломов высшего и среднего образования и процесс их получения
    alhambra.bestforums.org/viewtopic.php?f=10&t=37463&p=47731#p47731
    Рады оказать помощь!.

  15. Mazrest说道:

    Добрый день!
    Официальная покупка диплома вуза с сокращенной программой в Москве
    http://www.msestudio.com.br/купить-диплом-мфюа/

  16. Uazrdzl说道:

    Добрый день!
    Купить диплом любого университета.
    thehubbcommunitynetwork.mn.co/posts/61679289

  17. Sazrbgf说道:

    Привет!
    Как безопасно купить диплом колледжа или ВУЗа в России, что важно знать
    tyachiv.ukraine7.com/t21120-topic#39099
    Поможем вам всегда!.

  18. Jamesjer说道:

    buy paxlovid online: paxlovid india – paxlovid buy

  19. Trefpwi说道:

    Здравствуйте!
    Как безопасно купить диплом колледжа или ПТУ в России, что важно знать
    moregasmsplease.com/component/kunena/user/564237-ydekic
    Поможем вам всегда!.

  20. Sazrkzs说道:

    Здравствуйте!
    Приобретение школьного аттестата с официальным упрощенным обучением в Москве
    gadjetforyou.ru/diplom-za-dengi-byistro-nadezhno-bezopasno
    Рады помочь!.

  21. Diplomi_ubSt说道:

    купить диплом в йошкар оле asxdiplomik24.ru .

  22. ThomasInace说道:

    https://ciprodelivery.pro/# cipro 500mg best prices

  23. 24bet说道:

    My partner and I stumbled over here coming from a different web address
    and thought I may as well check things out. I like what I see so now
    i’m following you. Look forward to checking out your web page yet again.

  24. Dnrtvtr说道:

    Привет!
    Купить документ университета можно у нас в Москве.
    diplomyx.com/otzyvy
    Успешной учебы!

  25. Larioraeb说道:

    Стоимость дипломов высшего и среднего образования и как избежать подделок
    asxdiplomik24.ru/kupit-diplom-novosibirsk

  26. Xazrepj说道:

    Привет!
    Купить диплом о среднем полном образовании, в чем подвох и как избежать обмана?
    arusak-diploms-srednee.ru/kupit-diplom-v-krasnodare В 

  27. Xazrjlo说道:

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

  28. Lariorucu说道:

    Как не попасть впросак при покупке диплома колледжа или ПТУ в России
    diplomasx24.ru/kupit-diplom-sankt-peterburg

  29. Williamtok说道:

    Привет!
    Наша компания предлагает быстро и выгодно купить диплом, который выполнен на оригинальном бланке и заверен печатями, штампами, подписями. Диплом пройдет любые проверки, даже с использованием профессионального оборудования. Достигайте своих целей быстро и просто с нашими дипломами.
    vk.com/vzpiarrr?w=wall-224679085_12255
    Успехов в учебе!

  30. Jamesjer说道:

    doxycycline 100 mg tablets: buy vibramycin – doxycycline over the counter australia

  31. Diplomi_krol说道:

    Привет, друзья!
    Заказать документ о получении высшего образования вы сможете у нас.
    diplomyx24.ru/kupit-diplom-moskva

  32. ThomasInace说道:

    https://clomiddelivery.pro/# where can i buy clomid prices

  33. ThomasInace说道:

    https://amoxildelivery.pro/# order amoxicillin uk

  34. Jamesjer说道:

    amoxicillin 500 coupon: buy amoxicillin 500mg canada – amoxicillin 500 mg tablet price

  35. sex说道:

    This is a good tip particularly to those fresh to the blogosphere. Short but very precise information… Appreciate your sharing this one. A must read article!

  36. Cazrgfz说道:

    Здравствуйте!
    Мы готовы предложить документы техникумов, которые находятся в любом регионе Российской Федерации. Вы можете заказать диплом за любой год, в том числе документы СССР. Дипломы и аттестаты выпускаются на бумаге высшего качества. Это дает возможность делать настоящие дипломы, которые невозможно отличить от оригиналов. Документы будут заверены всеми необходимыми печатями и штампами.
    unguka.com/read-blog/9051

  37. ThomasInace说道:

    https://amoxildelivery.pro/# amoxicillin 500mg capsules uk

  38. ThomasInace说道:

    https://amoxildelivery.pro/# where to buy amoxicillin over the counter

  39. Jamesjer说道:

    buy doxycycline hyclate 100mg without a rx: buy doxycycline south africa – where to buy doxycycline

  40. Sazruek说道:

    Здравствуйте!
    Сколько стоит диплом высшего и среднего образования и как это происходит?
    fordtransit.5nx.ru/viewtopic.php?f=25&t=9347
    Рады оказаться полезными!.

  41. they rely heavily on the childhood defenses of denial and projection.えろ 人形The most pernicious aspect of narcissistic false victimhood is victim blaming,

  42. Dnrtgic说道:

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

  43. and support the ebb and flow of each other yet continue to hold hands,えろ 人形look each other in the e and check in,

  44. ThomasInace说道:

    https://paxloviddelivery.pro/# paxlovid for sale

  45. Jamesjer说道:

    doxycycline 10mg: 40mg doxycycline prices – doxycycline pharmacy

  46. Jamesjer说道:

    how to buy cheap clomid no prescription: can i purchase generic clomid without dr prescription – buying clomid without rx

  47. Dnrtcla说道:

    Здравствуйте!
    Купить документ института вы можете у нас в Москве.
    ast-diplom.com/kupit-diplom-nizhnij-novgorod
    Удачи!

发表回复

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