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

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

    Здравствуйте!
    Приобрести диплом ВУЗа.
    naturetour.ru/club/user/19/blog/1594

  2. Lazreez说道:

    Привет, друзья!
    Мы изготавливаем дипломы психологов, юристов, экономистов и других профессий по приятным ценам.
    physiobuettner.de/купить-диплом-мгакхис-или-любого-вуза

  3. DominicHOr说道:

    reputable mexican pharmacies online: mexico pharmacies prescription drugs – buying prescription drugs in mexico

  4. Diplomi_peol说道:

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

  5. Waynetar说道:

    reputable mexican pharmacies online: mexican rx online – pharmacies in mexico that ship to usa

  6. Waynetar说道:

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

  7. DominicHOr说道:

    medicine in mexico pharmacies: pharmacies in mexico that ship to usa – buying prescription drugs in mexico

  8. DominicHOr说道:

    mexican drugstore online: п»їbest mexican online pharmacies – mexican mail order pharmacies

  9. Lazrvky说道:

    Добрый день!
    Купить диплом любого ВУЗа.
    itstagram.ru/read-blog/394

  10. Diplomi_huol说道:

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

  11. RichardMonge说道:

    https://mexicandeliverypharma.com/# mexico pharmacies prescription drugs

  12. Waynetar说道:

    mexican mail order pharmacies: pharmacies in mexico that ship to usa – buying prescription drugs in mexico

  13. DominicHOr说道:

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

  14. RichardMonge说道:

    http://mexicandeliverypharma.com/# buying prescription drugs in mexico online

  15. KevinFug说道:

    Mavericks rising superstar Luka Doncic https://mavericks-de-dallas.lukadoncic-fr.com continues to amaze the basketball world with his game.

  16. Waynetar说道:

    best online pharmacies in mexico: mexican drugstore online – mexico drug stores pharmacies

  17. Dnrtrfz说道:

    Привет!
    Заказать документ ВУЗа можно в нашей компании.
    diploms-x.com/kupit-diplom-omsk
    Удачи!

  18. Mazrbam说道:

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

  19. Arnoldscava说道:

    mexican pharmaceuticals online mexico pharmacies prescription drugs п»їbest mexican online pharmacies

  20. Mazrcxk说道:

    Привет, друзья!
    Быстрое обучение и получение диплома магистра – возможно ли это?
    mans-diplomas.ru

  21. Mazrqge说道:

    Привет!
    Можно ли купить аттестат о среднем образовании, основные моменты и вопросы
    diploms-man.ru

  22. JamesLer说道:

    Discover Kyrie Irving’s https://mavericks-de-dallas.kyrie-irving-fr.com journey with the Dallas Mavericks, from his early days to forming a power duo with Luka Doncic and competing for a championship.

  23. Arnoldscava说道:

    mexico drug stores pharmacies mexican pharmaceuticals online mexican online pharmacies prescription drugs

  24. ThomasHem说道:

    The story of Michael Phelps https://amerique.michael-phelps.com how he became the greatest swimmer of all time, overcoming adversity, setting records and inspiring the world.

  25. RonaldCoova说道:

    Learn about Jayson Tatum’s https://celtics-de-boston.jayson-tatum.com rise from young rookie to key leader of the Boston Celtics in the NBA, his impact on the team and his success on the court.

  26. купить разработку сайта https://biztest.ru .

  27. Charlesfrott说道:

    The Boston Celtics https://celtics-de-boston.bill-russel.com are one of the most successful teams in the history of the National Basketball Association (NBA).

  28. Arnoldscava说道:

    reputable mexican pharmacies online best online pharmacies in mexico mexico drug stores pharmacies

  29. Waynetar说道:

    mexican online pharmacies prescription drugs: buying prescription drugs in mexico online – best online pharmacies in mexico

  30. DominicHOr说道:

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

  31. Treffok说道:

    Привет, друзья!
    Можно ли быстро купить диплом старого образца и в чем подвох?
    csleague.ca/диплом-о-среднем-образовании-купить-н
    Окажем помощь!.

  32. Waynetar说道:

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

  33. DominicHOr说道:

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

  34. RichardMonge说道:

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

  35. Arnoldscava说道:

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

  36. Arnoldscava说道:

    medicine in mexico pharmacies mexican pharmaceuticals online mexico drug stores pharmacies

  37. Dnrtbdt说道:

    Добрый день!
    Заказать документ о получении высшего образования вы можете в нашей компании в столице.
    diploms-x24.ru/kupit-diplom-o-srednem-obrazovanii
    Хорошей учебы!

  38. Lazrnih说道:

    Привет!
    Мы изготавливаем дипломы любых профессий по приятным тарифам.
    scoalaabram.ro/2024/07/13/купить-сшиватель-для-диплома

  39. RichardMonge说道:

    https://mexicandeliverypharma.online/# purple pharmacy mexico price list

  40. Diplomi_pjol说道:

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

  41. Trefpyc说道:

    Здравствуйте!
    Как приобрести диплом техникума с минимальными рисками
    sex8.zone/home.php?mod=space&uid=9145316&do=profile
    Всегда вам поможем!.

  42. Trefezh说道:

    Привет!
    Полезные советы по безопасной покупке диплома о высшем образовании
    mycryptonewzhub.com/диплом-купить-где-и-как/
    Будем рады вам помочь!.

  43. Trefefe说道:

    Добрый день!
    Легальная покупка школьного аттестата с упрощенной программой обучения
    csleague.ca/диплом-о-среднем-образовании-купить-н/
    Рады оказаться полезными!.

  44. Arnoldscava说道:

    mexican online pharmacies prescription drugs [url=https://mexicandeliverypharma.com/#]mexico drug stores pharmacies[/url] mexican mail order pharmacies

  45. Waynetar说道:

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

  46. DominicHOr说道:

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

  47. RichardMonge说道:

    http://mexicandeliverypharma.com/# reputable mexican pharmacies online

  48. Arnoldscava说道:

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

  49. Arnoldscava说道:

    purple pharmacy mexico price list mexican drugstore online buying from online mexican pharmacy

发表回复

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