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

/ 44,145评论 / 216515阅读 / 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_tcol说道:

    Здравствуйте!
    Приобрести документ о получении высшего образования вы имеете возможность у нас.
    diplomasx.com/kupit-diplom-bakalavra-ili-specialista 

  2. Xazrveq说道:

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

  3. Xazrdvj说道:

    Добрый день!
    Как купить диплом о высшем образовании с минимальными рисками
    landik-diploms-srednee.ru/kupit-diplom-v-kazani В 

  4. Very good blog post. I absolutely love this site. Thanks!

  5. Manrndc说道:

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

  6. Xazrmcc说道:

    Добрый день!
    Официальная покупка диплома вуза с сокращенной программой обучения в Москве
    arusak-diploms-srednee.ru/diplom-sredne-spetcialnoe-obrazovanie В 

  7. Lazryrq说道:

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

  8. Mazrqlm说道:

    Привет, друзья!
    Как избежать рисков при покупке диплома колледжа или ПТУ в России
    http://www.manchestercityclubs.com/read-blog/256_kak-kupit-nedorogo-neotlichimyj-ot-podlinnika-diplom-v-internete.html?mode=night

  9. Manrngp说道:

    Здравствуйте!
    Купить документ о получении высшего образования
    diplomasx.com/kupit-diplom-magistra

  10. лучшие капперы с бесплатными прогнозами лучшие капперы с бесплатными прогнозами .

  11. Dnrtzrf说道:

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

  12. Lazriyf说道:

    Привет, друзья!
    Мы изготавливаем дипломы любых профессий по невысоким ценам.
    es-presto.ru/community/groups/0-0/179-4-glavnykh-gruppy-internet-magazinov-kotorye-prodayut-diplomy

  13. Lazrhkn说道:

    Здравствуйте!
    Приобрести диплом о высшем образовании.
    yur-dom.ru/communication/forum/messages/forum3/message242/285-bolshoy-vybor-dokumentov-v-izvestnom-internet_magazine?result=new

  14. Diplomi_msol说道:

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

  15. Raymondfup说道:

    недорогие квартиры от застройщика https://kvartiranovostroi2.ru

  16. Trefrgr说道:

    Привет, друзья!
    Легальная покупка диплома о среднем образовании в Москве и регионах
    vk.com/public50470295?w=wall-50470295_628
    Будем рады вам помочь!.

  17. Tommieduh说道:

    купить однокомнатную квартиру в новостройке купить двухкомнатную квартиру

  18. Mazrngn说道:

    Добрый день!
    Приобрести документ о получении высшего образования можно в нашей компании в Москве. Мы предлагаем документы об окончании любых университетов России. Вы сможете получить необходимый диплом по любой специальности, включая документы Советского Союза. Гарантируем, что в случае проверки документа работодателями, подозрений не появится.
    Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий по приятным тарифам. Стоимость будет зависеть от выбранной специальности, года выпуска и образовательного учреждения. Всегда стараемся поддерживать для заказчиков адекватную ценовую политику. Для нас очень важно, чтобы документы были доступны для подавляющей массы граждан.
    onlinekinofun.ru/diplom-po-vashemu-vyiboru-vasha-garantiya-uspeshnogo-budushhego
    Рады оказать помощь!

  19. Diplomi_hhol说道:

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

  20. WilliamVet说道:

    квартиры с отделкой от застройщика https://kvartiranovostroi.ru

  21. Lariorhsm说道:

    Покупка диплома о среднем полном образовании: как избежать мошенничества?
    ast-diplomy24.ru/kupit-diplom-rostov-na-donu

  22. лучшие капперы с бесплатными прогнозами лучшие капперы с бесплатными прогнозами .

  23. DanielEmilk说道:

    купить квартиру от застройщика https://zastroyshikekb.ru

  24. Dnrteqb说道:

    Здравствуйте!
    Заказать документ университета можно в нашей компании.
    ast-diplomas24.ru/kupit-diplom-o-srednem-obrazovanii
    Успехов в учебе!

  25. Lazrhyg说道:

    Добрый день!
    Приобрести диплом любого университета.
    blogs.rufox.ru/~sonnick84/48075.htm

  26. Dnrtoxl说道:

    Привет!
    Приобрести документ ВУЗа можно у нас в Москве.
    ast-diplomy.com/kupit-diplom-sankt-peterburg
    Хорошей учебы!

  27. оборудование для конференц зала готовые решения http://oborudovanie-dlja-konferenc-zalov.ru .

  28. Mazrigy说道:

    Добрый день!
    Полезная информация как официально купить диплом о высшем образовании
    jrsjewellers.com/2024/06/29/купить-дипломы-университета/

  29. Hello There. I found your blog the use of msn.
    That is a really smartly written article. I’ll be sure to bookmark it and come back to read more of your useful information. Thank you for the post.
    I will definitely return.

  30. Lazrtfl说道:

    Здравствуйте!
    Приобрести диплом о высшем образовании.
    berforum.ru/gallery/image/8670-kak-nayti-nadezhnyy-internet-magazin-s-bolshim-vyborom-diplomov/?context=new

  31. konulu porno说道:

    Sex ve Porno İzlemek için Harika bir Adres

  32. звуковое оборудование для конференц зала https://oborudovanie-dlja-konferenc-zalov.ru/ .

  33. Lariorzjq说道:

    Удивительно, но купить диплом кандидата наук оказалось не так сложно
    ast-diplomas.com/kupit-diplom-sankt-peterburg

  34. Lariorptm说道:

    Как приобрести аттестат о среднем образовании в Москве и других городах
    ast-diplomy24.ru/kupit-diplom-omsk

  35. Lariorpcl说道:

    Покупка диплома о среднем полном образовании: как избежать мошенничества?
    ast-diploms24.ru/kupit-diplom-ekaterinbur

  36. Trefwll说道:

    [u][b] Здравствуйте![/b][/u]
    [b]Как правильно приобрести диплом колледжа или ПТУ в России, важные моменты [/b]
    [url=http://teplo-hata.com.ua/users/uqonuxuk/]teplo-hata.com.ua/users/uqonuxuk[/url]
    [u][b] Рады помочь![u][b].

  37. Lazrcyq说道:

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

  38. Diplomi_stol说道:

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

  39. Jamesjer说道:

    buy cipro: cipro – cipro for sale

  40. Yrefyov说道:

    Привет, друзья!
    Купить диплом ВУЗа.
    revolverp.forumex.ru/viewtopic.php?f=11&t=217
    Хорошей учебы!

  41. Jamesjer说道:

    generic amoxicillin: amoxicillin script – amoxicillin 500mg capsule cost

  42. Mazrrye说道:

    Здравствуйте!
    Стоимость дипломов высшего и среднего образования и как избежать подделок
    metalxsports.com/купить-диплом-в-ижевске/

  43. Dnrtxbi说道:

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

发表回复

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