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

/ 44,205评论 / 217032阅读 / 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. Arnoldscava说道:

    mexican drugstore online purple pharmacy mexico price list reputable mexican pharmacies online

  2. Lazrliw说道:

    Привет!
    Мы изготавливаем дипломы любых профессий по приятным ценам.
    woowsent.com/read-blog/58_planiruete-priobresti-attestat-u-nadezhnogo-proizvoditelya-zahodite

  3. Waynetar说道:

    mexico drug stores pharmacies: mexican mail order pharmacies – mexico pharmacies prescription drugs

  4. DominicHOr说道:

    mexico pharmacies prescription drugs: buying from online mexican pharmacy – mexican rx online

  5. Danrwdt说道:

    Привет, друзья!
    Мы изготавливаем дипломы любых профессий.
    amcall.net/read-blog/338_nadezhnyj-onlajn-magazin-s-obshirnym-katalogom-dokumentov
    Рады оказать помощь!.

  6. Waynetar说道:

    mexican mail order pharmacies: mexican drugstore online – mexican pharmaceuticals online

  7. DominicHOr说道:

    medicine in mexico pharmacies: п»їbest mexican online pharmacies – purple pharmacy mexico price list

  8. Arnoldscava说道:

    mexico pharmacy mexican mail order pharmacies pharmacies in mexico that ship to usa

  9. Arnoldscava说道:

    mexico drug stores pharmacies mexico drug stores pharmacies mexican mail order pharmacies

  10. Sazrtnq说道:

    Здравствуйте!
    Мы изготавливаем дипломы любой профессии по приятным ценам. Цена может зависеть от конкретной специальности, года получения и образовательного учреждения. Всегда стараемся поддерживать для заказчиков адекватную ценовую политику. Важно, чтобы дипломы были доступными для подавляющей массы наших граждан.
    bookmark-nation.com/story17073977/купить-диплом-о-высшем-цена

  11. Arnoldscava说道:

    mexican border pharmacies shipping to usa buying from online mexican pharmacy buying prescription drugs in mexico

  12. RichardMonge说道:

    https://mexicandeliverypharma.com/# mexico drug stores pharmacies

  13. Waynetar说道:

    medication from mexico pharmacy: mexican pharmaceuticals online – purple pharmacy mexico price list

  14. Dnrtomz说道:

    Здравствуйте!
    Приобрести документ о получении высшего образования можно у нас в столице.
    diplomyx.com/otzyvy
    Хорошей учебы!

  15. Xazrvrv说道:

    Привет!
    Официальное получение диплома техникума с упрощенным обучением в Москве
    landik-diploms-srednee.ru/kupit-diplom-saratov В 

  16. Manrcqg说道:

    Здравствуйте!
    Заказать документ института
    asxdiplomik.com/kupit-diplom-vracha

  17. Waynetar说道:

    mexican border pharmacies shipping to usa: medication from mexico pharmacy – mexican border pharmacies shipping to usa

  18. DominicHOr说道:

    mexican border pharmacies shipping to usa: mexican rx online – mexico drug stores pharmacies

  19. RichardMonge说道:

    https://mexicandeliverypharma.online/# buying prescription drugs in mexico online

  20. Richardditly说道:

    Частная платная клиника https://mypsyhealth.ru психиатрии, психологии, психотерапии и наркологии анонимно в Москве.

  21. RichardMonge说道:

    https://mexicandeliverypharma.com/# mexican mail order pharmacies

  22. Trefkut说道:

    Привет!
    Возможно ли купить диплом стоматолога, и как это происходит
    gaiassulin.com/диплом-о-среднем-образовании-как-и-где.html
    Окажем помощь!.

  23. EdwardMip说道:

    Deep Fake Nudes undress AI with Undress AI and Deepnude

  24. Waynetar说道:

    medication from mexico pharmacy: mexican rx online – mexican pharmaceuticals online

  25. DominicHOr说道:

    п»їbest mexican online pharmacies: best online pharmacies in mexico – buying from online mexican pharmacy

  26. Diplomi_csol说道:

    Привет, друзья!
    Приобрести документ университета можно в нашей компании в Москве.
    diplomasx.com/kupit-diplom-perm

  27. Hi, I want to subscribe for this website to obtain most
    up-to-date updates, therefore where can i do it please
    help out.

  28. Waynetar说道:

    buying from online mexican pharmacy: mexico pharmacies prescription drugs – mexico drug stores pharmacies

  29. Waynetar说道:

    pharmacies in mexico that ship to usa: buying from online mexican pharmacy – buying prescription drugs in mexico

  30. DominicHOr说道:

    mexican drugstore online: mexico drug stores pharmacies – mexican pharmaceuticals online

  31. RichardMonge说道:

    http://mexicandeliverypharma.com/# mexico drug stores pharmacies

  32. RichardMonge说道:

    https://mexicandeliverypharma.online/# pharmacies in mexico that ship to usa

  33. Waynetar说道:

    mexican border pharmacies shipping to usa: reputable mexican pharmacies online – buying prescription drugs in mexico online

  34. DominicHOr说道:

    mexican border pharmacies shipping to usa: mexico drug stores pharmacies – reputable mexican pharmacies online

  35. Mazrymg说道:

    Привет, друзья!
    Как официально купить аттестат 11 класса с упрощенным обучением в Москве
    mans-diplomasxx.ru

  36. Waynetar说道:

    mexican border pharmacies shipping to usa: mexico drug stores pharmacies – buying prescription drugs in mexico online

  37. DominicHOr说道:

    buying from online mexican pharmacy: mexico drug stores pharmacies – п»їbest mexican online pharmacies

  38. Arnoldscava说道:

    medication from mexico pharmacy purple pharmacy mexico price list pharmacies in mexico that ship to usa

  39. Diplomi_oxol说道:

    Здравствуйте!
    Купить документ института можно у нас.
    diploms-x.com/kupit-diplom-perm

  40. Arnoldscava说道:

    mexico pharmacy mexican border pharmacies shipping to usa best online pharmacies in mexico

  41. Dnrthqa说道:

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

  42. Trefaur说道:

    Добрый день!
    Аттестат 11 класса купить официально с упрощенным обучением в Москве
    theplaygamepicks.com/диплом-техникума-где-и-как-купить/
    Рады оказаться полезными!.

  43. Dnrtjdm说道:

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

  44. Waynetar说道:

    medication from mexico pharmacy: mexican drugstore online – mexican online pharmacies prescription drugs

发表回复

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