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

/ 43,769评论 / 214513阅读 / 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. BomesMix说道:

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

  2. Uazrlls说道:

    Привет!
    Где купить диплом по необходимой специальности?
    dzone.com/users/5166875/leonardchambers.html

  3. Uazrjkm说道:

    Привет, друзья!
    Где купить диплом по необходимой специальности?
    http://www.eSurveysPro.com/Survey.aspx?id=19d83309-26ea-40b3-adbc-dbe80bd1adf3

  4. Lazrdgl说道:

    Привет!
    Мы изготавливаем дипломы любой профессии по доступным ценам.
    leicestercityfansclub.com/read-blog/2080_kak-mozhno-budet-kupit-sejchas-kachestvennyj-diplom-v-seti.html

  5. Dnrtvsy说道:

    Привет, друзья!
    Приобрести документ института можно в нашем сервисе.
    diploms-x24.ru/kupit-diplom-omsk
    Хорошей учебы!

  6. Diplomi_avol说道:

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

  7. Danrncv说道:

    Добрый день!
    Мы изготавливаем дипломы любой профессии.
    twanty2.com/read-blog/168_kak-podobrat-nadezhnyj-internet-magazin-chto-realizuet-dokumenty.html
    Будем рады вам помочь!.

  8. Uazrcgr说道:

    Добрый день!
    Заказать диплом университета.
    http://www.jointcorners.com/read-blog/78249

  9. BomesMix说道:

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

  10. Uazrejb说道:

    Привет, друзья!
    Заказать диплом о высшем образовании.
    kharkov-balka.com/showthread.php?p=154755#post154755

  11. Michaelgen说道:

    Мазь для суставов https://sustalits.ru заказать онлайн.

  12. klikx in England说道:

    This is a great tip especially to those fresh to the blogosphere. Simple but very accurate information… Thank you for sharing this one. A must read post!

  13. BomesMix说道:

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

  14. Xazrazf说道:

    Добрый день!
    Как не попасть впросак при покупке диплома колледжа или ПТУ в России
    arusak-diploms-srednee.ru/kupit-diplom-magistra В 

  15. Mazryui说道:

    Привет, друзья!
    Купить диплом старого образца, можно ли это сделать по быстрой схеме?
    phugiabetong.vn/диплом-аттестаты-купить

  16. Manrmjh说道:

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

  17. Lazrwgw说道:

    Здравствуйте!
    Мы изготавливаем дипломы любой профессии по приятным ценам.
    http://www.sermadiesel.com.pe/2024/06/30/купить-диплом-спо/

  18. Lazrjik说道:

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

  19. Dnrtmkq说道:

    Добрый день!
    Приобрести документ института вы имеете возможность у нас.
    ast-diplom24.ru/kupit-diplom-magistra
    Успехов в учебе!

  20. Dnrtebv说道:

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

  21. Diplomi_qkol说道:

    Здравствуйте!
    Приобрести документ института вы можете в нашей компании в столице.
    ast-diplomy.com/kupit-diplom-perm 

  22. Diplomi_lvol说道:

    Здравствуйте!
    Заказать документ университета вы имеете возможность в нашем сервисе.
    ast-diplomas.com/kupit-diplom-tehnikuma-kolledzha 

  23. Diplomi_cjol说道:

    Привет, друзья!
    Заказать документ университета можно в нашем сервисе.
    diplomyx.com/kupit-diplom-bakalavra-ili-specialista 

  24. BomesMix说道:

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

  25. Lazrsir说道:

    Привет!
    Заказать диплом о высшем образовании.
    ccde-cambodia.com/cb-profile/pluginclass/cbblogs.html?action=blogs&func=show&id=118

  26. ArthurWaivy说道:

    Изготовление металлических навесов для автомобиля в Санкт-Петербурге https://trudolubov.com/product/navesy/. Цены на сайте.

  27. MelvinTeasy说道:

    Газоблоки https://gasoblok.ru являются самым популярным материалом для строительства домов из газобетона, они стали эффективной, надежной и недорогой технологией. Качественные газобетонные блоки производятся промышленным способом и обрабатываются в специальных автоклавах.

  28. Craigodope说道:

    Mixing Reinvented ChipMixer For Your Privacy

  29. Lazrxoe说道:

    Привет, друзья!
    Приобрести диплом о высшем образовании.
    licomklicu.ru/read-blog/885

  30. RobertLAr说道:

    buy cipro without rx: cipro for sale – purchase cipro

  31. mp3juice说道:

    A fascinating discussion is definitely worth comment. I do think that you ought to publish more about this issue, it might not be a taboo matter but typically people do not talk about these topics. To the next! All the best.

  32. BomesMix说道:

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

  33. RobertLAr说道:

    amoxicillin online no prescription: amoxicillin 500mg capsules antibiotic – amoxicillin azithromycin

  34. Lazrfzy说道:

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

  35. RobertLAr说道:

    amoxicillin order online: amoxicillin 500mg cost – amoxicillin 250 mg

  36. Dnrtmea说道:

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

  37. Soundcloudto.com说道:

    Way cool! Some very valid points! I appreciate you writing this post and the rest of the website is extremely good.

  38. BomesMix说道:

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

  39. Diplomi_snol说道:

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

  40. RobertLAr说道:

    22 doxycycline: order doxycycline canada – doxycycline for sale uk

  41. Trefqxt说道:

    Добрый день!
    Как приобрести диплом техникума с минимальными рисками
    higherranker.com/купить-диплом-проверенные-способы/
    Поможем вам всегда!.

  42. Xazrxdo说道:

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

  43. RobertLAr说道:

    amoxicillin 200 mg tablet: amoxicillin online purchase – amoxicillin 875 125 mg tab

发表回复

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