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

/ 44,249评论 / 217363阅读 / 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. Diplomi_afst说道:

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

  2. BomesMix说道:

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

  3. Uazraeo说道:

    Привет, друзья!
    Где приобрести диплом специалиста?
    usa.life/read-blog/62808

  4. Victoredize说道:

    Bayern Munich’s https://bayern.jamal-musiala-ar.com young midfielder, Jamal Musiala, has become one of the brightest talents in European football.

  5. Diplomi_bpst说道:

    купить диплом механика diploms-x.com .

  6. Davidfax说道:

    Thibaut Courtois https://real-madrid.thibaut-courtois-ar.com was born on May 11, 1992 in Belgium.

  7. Diplomi_zkol说道:

    Добрый день!
    Приобрести документ университета вы сможете у нас.
    ast-diplomas.com/kupit-diplom-o-vysshem-obrazovanii 

  8. Lazrjti说道:

    Здравствуйте!
    Заказать диплом любого университета.
    gtago.ru/gallery/image/19-ogromnyy-vybor-dokumentov-v-populyarnom-internet-magazine/?context=new

  9. kubet77说道:

    Hi there! I simply wish to give you a big thumbs up for the great info you have right here on this post. I will be coming back to your website for more soon.

  10. Jamesjer说道:

    doxycycline singapore pharmacy: doxycycline 100mg best buy – how to buy doxycycline in uk

  11. Yrefasx说道:

    Привет!
    Приобрести диплом ВУЗа.
    1abakan.ru/forum/showthread-183990/
    Удачи!

  12. Lazrelo说道:

    [u][b] Привет, друзья![/b][/u]
    [b]Приобрести диплом ВУЗа.[/b]
    [url=http://anamaliya.ru/otzyvy/shirokiy-assortiment-dokumentov-v-populyarnom-onlayn-magazine/]anamaliya.ru/otzyvy/shirokiy-assortiment-dokumentov-v-populyarnom-onlayn-magazine[/url]

  13. Trefiwz说道:

    Здравствуйте!
    Как избежать рисков при покупке диплома колледжа или ПТУ в России
    odessaflower.ukrbb.net/viewtopic.php?f=55&t=29565
    Окажем помощь!.

  14. MyronEvown说道:

    http://ciprodelivery.pro/# buy cipro online without prescription
    paxlovid pill [url=https://paxloviddelivery.pro/#]paxlovid for sale[/url] paxlovid pill

  15. Mazrtcm说道:

    Здравствуйте!
    Быстрое обучение и получение диплома магистра – возможно ли это?
    hunmanby.uk/купить-диплом-в-дмитрове/

  16. Diplomi_ojol说道:

    Привет, друзья!
    Заказать документ ВУЗа можно в нашей компании.
    diplomyx.com/kupit-diplom-tehnikuma-kolledzha 

  17. Diplomi_jiol说道:

    Здравствуйте!
    Купить документ института вы можете у нас.
    ast-diplomy.com/kupit-diplom-s-registraciej 

  18. ThomasInace说道:

    http://clomiddelivery.pro/# order cheap clomid without rx

  19. BomesMix说道:

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

  20. Eanrbhs说道:

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

  21. Lariorhmx说道:

    Легальная покупка школьного аттестата с упрощенной программой обучения
    diploms-x.com/kupit-diplom-vracha

  22. Danrusr说道:

    Привет!
    Мы изготавливаем дипломы любых профессий.
    worldavtonew.ru/ofitsialnyie-diplomyi-podlinnost-i-nadezhnost
    Рады оказаться полезными!.

  23. Lazrfes说道:

    Здравствуйте!
    Приобрести диплом любого университета.
    prof-komplekt.com/club/user/1035/blog/11031/

  24. Dnrtaer说道:

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

  25. Cazrssi说道:

    Здравствуйте!
    Мы предлагаем документы ВУЗов, которые находятся на территории всей России. Вы сможете приобрести качественный диплом от любого заведения, за любой год, указав подходящую специальность и хорошие оценки за все дисциплины. Дипломы и аттестаты выпускаются на “правильной” бумаге самого высокого качества. Это дает возможность делать государственные дипломы, не отличимые от оригиналов. Документы заверяются необходимыми печатями и подписями.
    humansnet.com//read-blog/361_kak-vozmozhno-bystro-zakazat-diplom-v-internet-magazine.html

  26. Dnrtwvw说道:

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

  27. Jamesjer说道:

    ciprofloxacin generic price: buy cipro – buy cipro cheap

  28. Sazrruf说道:

    Добрый день!
    Как официально купить аттестат 11 класса с упрощенным обучением в Москве
    pro-novostroyki.ru/index.php?
    Всегда вам поможем!

  29. After going over a handful of the blog posts on your blog, I truly appreciate your way of blogging. I saved it to my bookmark site list and will be checking back soon. Please visit my web site too and tell me your opinion.

  30. ThomasInace说道:

    http://doxycyclinedelivery.pro/# doxycycline 100mg tablets coupon

  31. Jamesjer说道:

    can you get cheap clomid: where to get clomid now – how to get generic clomid tablets

  32. Sazrvas说道:

    Привет!
    Полезные советы по безопасной покупке диплома о высшем образовании
    worksale.mn.co/posts/62004411
    Всегда вам поможем!

  33. BomesMix说道:

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

  34. Sazrwlv说道:

    Добрый день!
    Приобретение школьного аттестата с официальным упрощенным обучением в Москве
    grot.getbb.ru/posting.php?mode=post&f=6&sid=55d24fc8fafc5b4c89661eb7ae11aaa9
    Рады оказаться полезными!

  35. Lazrrzh说道:

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

  36. phising说道:

    I�m often to blogging and i really appreciate your content. The article has actually peaks my interest. I�m going to bookmark your web site and maintain checking for brand spanking new information.

  37. Oscarerard说道:

    Arsenal https://arsenal.mesut-ozil-ar.com made a high-profile signing in 2013, signing star midfielder Mesut Ozil from Real Madrid.

  38. Diplomi_mrol说道:

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

  39. MartinLoort说道:

    In an era when many young footballers struggle to find their place at elite clubs, Javi’s https://barcelona.gavi-ar.com story at Barcelona stands out as an exceptional one.

  40. Isaiasminue说道:

    Rodrigo Goes https://real-madrid.rodrygo-ar.com better known as Rodrigo, is one of the brightest young talents in modern football.

  41. Jamesjer说道:

    doxycycline cap 50mg: doxycycline 40 mg price – buy doxycycline medicine

  42. Robertfen说道:

    The Saudi Football League https://saudi-arabian-championship.saudi-pro-league-ar.com known as the Saudi Professional League, is one of the most competitive and dynamic leagues in the world.

  43. Kennethrhync说道:

    https://euroavia24.com – Cheap flights, hotels and transfers around the world!

  44. Lazraye说道:

    Привет, друзья!
    Где купить диплом специалиста?
    Приобрести диплом любого университета.
    friends.win/read-blog/3720

  45. ThomasInace说道:

    https://amoxildelivery.pro/# amoxicillin 500 mg tablets

  46. самое классное порево https://www.klassny-sex.ru .

  47. iptv说道:

    Having read this I thought it was really informative. I appreciate you finding the time and energy to put this content together. I once again find myself personally spending way too much time both reading and commenting. But so what, it was still worth it.

  48. Cazrqwz说道:

    Добрый день!
    Мы можем предложить документы техникумов, которые расположены в любом регионе Российской Федерации. Вы имеете возможность приобрести диплом от любого учебного заведения, за любой год, указав подходящую специальность и оценки за все дисциплины. Дипломы и аттестаты выпускаются на “правильной” бумаге самого высшего качества. Это позволяет делать настоящие дипломы, не отличимые от оригинала. Они будут заверены необходимыми печатями и штампами.
    dbuniverse.net/forum/index.php?/gallery/image/249-%D0%B2%D1%8B%D0%B3%D0%BE%D0%B4%D0%BD%D1%8B%D0%B5-%D1%80%D0%B0%D1%81%D1%86%D0%B5%D0%BD%D0%BA%D0%B8-%D0%B8-%D0%B2%D1%8B%D1%81%D0%BE%D0%BA%D0%BE%D0%B5-%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D1%80%D0%B8%D0%BE%D0%B1%D1%80%D0%B5%D1%82%D0%B0%D0%B9-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC%D1%8B-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD/

发表回复

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