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

/ 44,212评论 / 217102阅读 / 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. Sahabet说道:

    Hello! I could have sworn I’ve been to this blog before but after browsing through some of the post I realized it’s new to me.Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut

  2. Dnrtfma说道:

    [u][b] Привет![/b][/u]
    [b]Купить документ[/b] университета вы сможете у нас в Москве.
    [url=http://diplomasx.com/kupit-diplom-nizhnij-novgorod/]diplomasx.com/kupit-diplom-nizhnij-novgorod[/url]
    [b]Успешной учебы![/b]

  3. Lazryde说道:

    Привет!
    Мы готовы предложить дипломы любой профессии по доступным ценам.
    http://www.techhackly.xyz/2024/06/30/купить-дипломы-университета/

  4. Jamesjer说道:

    clomid without dr prescription: where to buy cheap clomid pill – where to get generic clomid pills

  5. Dnrtkxi说道:

    [u][b] Добрый день![/b][/u]
    [b]Купить документ[/b] института можно у нас в Москве.
    [url=http://ast-diplomas24.ru/kupit-diplom-voronezh/]ast-diplomas24.ru/kupit-diplom-voronezh[/url]
    [b]Хорошей учебы![/b]

  6. Lazrfku说道:

    Добрый день!
    Где приобрести диплом по нужной специальности?
    Заказать диплом о высшем образовании.
    earthpro.listbb.ru/viewtopic.php?f=3&t=401

  7. Danrabf说道:

    Добрый день!
    Мы можем предложить дипломы любых профессий.
    sommos.com.co/купить-диплом-модельера/
    Рады оказаться полезными!.

  8. Sazrgct说道:

    Привет, друзья!
    Полезные советы по безопасной покупке диплома о высшем образовании
    29ru.listbb.ru/posting.php?mode=post&f=26
    Рады оказать помощь!

  9. ThomasInace说道:

    https://ciprodelivery.pro/# ciprofloxacin 500 mg tablet price

  10. Sazrgfk说道:

    Привет, друзья!
    Полезные советы по безопасной покупке диплома о высшем образовании
    fotomaniya.getbb.ru/ucp.php?mode=login&sid=40b7361d19da65191b73c622e2e73c91
    Рады помочь!

  11. BomesMix说道:

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

  12. Xazrarh说道:

    [b]Здравствуйте![/b]
    Как приобрести диплом техникума с минимальными рисками
    [url=http://arusak-diploms-srednee.ru/kupit-diplom-kandidata-nauk В ]arusak-diploms-srednee.ru/kupit-diplom-kandidata-nauk В [/url]

  13. Mazrtds说道:

    Привет!
    Купить диплом магистра оказалось возможно, быстрое обучение и диплом на руки
    http://www.ldkladno.cz/test/2024/06/30/диплом-специалиста-2011-2013-видео/

  14. Manrgpx说道:

    Привет, друзья!
    Купить документ института
    diplomyx.com/kupit-diplom-voronezh

  15. Lazrmhe说道:

    Здравствуйте!
    Приобрести диплом о высшем образовании.
    deris.by/news/blogs/1/obshirnyy-vybor-dokumentov-v-populyarnom-internet-magazine.php

  16. Mazrcgr说道:

    Привет, друзья!
    Как получить диплом стоматолога быстро и официально
    aceenergyok.com/купить-копии-дипломов/

  17. porno video_enml说道:

    новые порно видео https://apteka-porno.ru .

  18. Cazrvnb说道:

    Привет, друзья!
    Мы можем предложить документы техникумов, расположенных на территории всей России. Вы сможете купить диплом от любого учебного заведения, за любой год, указав подходящую специальность и оценки за все дисциплины. Дипломы и аттестаты выпускаются на бумаге высшего качества. Это позволяет делать государственные дипломы, которые не отличить от оригиналов. Они будут заверены необходимыми печатями и штампами.
    eveficient.mn.co/posts/61838288

  19. Xazrbfy说道:

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

  20. This excellent website certainly has all the information and facts I needed concerning this subject and didn’t know who to ask.

  21. Lazrony说道:

    Здравствуйте!
    Мы изготавливаем дипломы любых профессий по приятным тарифам.
    dachkanews.ru/kupite-diplom-dlya-vashego-budushhego/

  22. Manrzdc说道:

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

  23. porno video_sxml说道:

    новые порно видео http://apteka-porno.ru/ .

  24. BomesMix说道:

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

  25. ThomasInace说道:

    http://ciprodelivery.pro/# where can i buy cipro online

  26. Dnrtrks说道:

    Привет!
    Купить документ института вы сможете у нас.
    diplomasx24.ru/kupit-diplom-vracha
    Успешной учебы!

  27. ThomasInace说道:

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

  28. Jamesjer说道:

    where to get clomid without rx: order cheap clomid no prescription – where can i get clomid tablets

  29. Diplomi_wvst说道:

    сколько стоит диплом врача [url=https://diploms-x.com/]сколько стоит диплом врача[/url] .

  30. Sazrawg说道:

    Привет!
    Легальная покупка диплома о среднем образовании в Москве и регионах
    vmestedeshevle.listbb.ru/posting.php?mode=post&f=10
    Рады оказаться полезными!

  31. Lazrbfs说道:

    Здравствуйте!
    Купить диплом университета.
    l67697qa.beget.tech/2024/07/04/ogromnyy-assortiment-dokumentov-v-populyarnom-internet-magazine.html

  32. ThomasInace说道:

    https://clomiddelivery.pro/# where buy clomid

  33. ThomasInace说道:

    https://clomiddelivery.pro/# how to get generic clomid without a prescription

  34. ByCasino说道:

    Thank you for great article. Hello Administ .Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut

  35. ByCasino说道:

    Thank you for great content. Hello Administ. Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut

  36. By Casino说道:

    I really love to read such an excellent article. Helpful article. Hello Administ . Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut

  37. By Casino说道:

    Nice article inspiring thanks. Hello Administ . Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut

  38. By Casino说道:

    Nice article inspiring thanks. Hello Administ . Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut

  39. ByCasino说道:

    Hi, just required you to know I he added your site to my Google bookmarks due to your layout. But seriously, I believe your internet site has 1 in the freshest theme I??ve came across.Seo Paketi Skype: By_uMuT@KRaLBenim.Com -_- live:by_umut

  40. ThomasInace说道:

    http://clomiddelivery.pro/# order clomid prices

  41. Diplomi_yvol说道:

    [u][b] Привет![/b][/u]
    [b]Купить документ[/b] института можно в нашей компании.
    [url=http://diplomasx.com/kupit-diplom-krasnodar /]diplomasx.com/kupit-diplom-krasnodar [/url]

  42. 라이즈 오브 올림푸스
    Zhu Houzhao는 여전히 증조모에 대한 깊은 감정을 가지고 있습니다.

  43. Jamesjer说道:

    doxycycline 50 mg cap: doxycycline 100mg for sale – can you buy doxycycline over the counter usa

  44. BomesMix说道:

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

  45. ThomasInace说道:

    https://ciprodelivery.pro/# ciprofloxacin 500mg buy online

  46. Cazrbxm说道:

    [u][b] Привет, друзья![/b][/u]
    [b]Мы предлагаем документы ВУЗов[/b], которые расположены в любом регионе РФ. Можно заказать качественный диплом от любого заведения, за любой год, включая сюда документы старого образца СССР. Документы выпускаются на бумаге самого высшего качества. Это дает возможность делать настоящие дипломы, которые невозможно отличить от оригинала. Документы будут заверены всеми требуемыми печатями и подписями.
    [url=http://www.lcwhost.org/events/event/14-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%B2-%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BC-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5-%D0%BF%D0%BE-%D0%B2%D1%8B%D0%B3%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8//]www.lcwhost.org/events/event/14-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D0%BC-%D0%B4%D0%B8%D0%BF%D0%BB%D0%BE%D0%BC-%D0%B2-%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BC-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD-%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD%D0%B5-%D0%BF%D0%BE-%D0%B2%D1%8B%D0%B3%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-%D1%81%D1%82%D0%BE%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8/[/url]

  47. Lazrqzo说道:

    [u][b] Добрый день![/b][/u]
    [b]Мы готовы предложить дипломы[/b] любой профессии по невысоким ценам.
    [url=http://thecareerer.com/wordpress/2024/06/30/купить-диплом-продавца-2//]thecareerer.com/wordpress/2024/06/30/купить-диплом-продавца-2/[/url]

  48. Trefzck说道:

    Здравствуйте!
    Аттестат школы купить официально с упрощенным обучением в Москве
    dexanet.ukrbb.net/viewtopic.php?f=5&t=15549
    Всегда вам поможем!.

发表回复

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