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

/ 25,028评论 / 141868阅读 / 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. Walteronerb说道:

    http://casinvietnam.com/# casino tr?c tuy?n vi?t nam

  2. JamesAnirm说道:

    http://casinvietnam.shop/# danh bai tr?c tuy?n

  3. scam说道:

    I strongly recommend steer clear of this platform. My own encounter with it has been purely disappointment as well as doubts about scamming practices. Proceed with extreme caution, or better yet, seek out a trustworthy service to meet your needs.

  4. RobertSmupt说道:

    Сегодня, когда аттестат – это начало удачной карьеры в любом направлении, многие стараются найти максимально быстрый путь получения качественного образования. Факт наличия официального документа сложно переоценить. Ведь диплом открывает дверь перед каждым человеком, который хочет вступить в профессиональное сообщество или учиться в ВУЗе.
    Предлагаем очень быстро получить этот важный документ. Вы сможете приобрести аттестат старого или нового образца, что будет удачным решением для человека, который не смог завершить образование, утратил документ или желает исправить плохие оценки. Аттестат изготавливается с особой тщательностью, вниманием ко всем элементам, чтобы в результате получился документ, полностью соответствующий оригиналу.
    Преимущество подобного подхода заключается не только в том, что вы максимально быстро получите свой аттестат. Процесс организовывается комфортно, с нашей поддержкой. Начиная от выбора необходимого образца до консультации по заполнению персональной информации и доставки по России — все будет находиться под полным контролем опытных мастеров.
    В итоге, всем, кто пытается найти оперативный способ получить требуемый документ, наша компания готова предложить отличное решение. Заказать аттестат – это значит избежать длительного обучения и сразу перейти к достижению личных целей, будь то поступление в ВУЗ или старт карьеры.

    http://prema-attestats.ru/

  5. lose money说道:

    I urge you stay away from this site. The experience I had with it was only disappointment as well as suspicion of deceptive behavior. Exercise extreme caution, or even better, look for an honest site to fulfill your requirements.

  6. lose money说道:

    I strongly recommend steer clear of this site. The experience I had with it was only disappointment and suspicion of deceptive behavior. Be extremely cautious, or better yet, find a more reputable site to fulfill your requirements.

  7. Walteronerb说道:

    http://casinvietnam.com/# game c? b?c online uy tin

  8. LarryGok说道:

    PBN sites
    We build a structure of self-owned blog network sites!

    Pros of our privately-owned blog network:

    WE DO everything SO THAT GOOGLE DOES NOT realize that this is A privately-owned blog network!!!

    1- We acquire domains from separate registrars

    2- The main site is hosted on a VPS hosting (VPS is rapid hosting)

    3- Other sites are on distinct hostings

    4- We assign a distinct Google profile to each site with verification in Search Console.

    5- We develop websites on WP, we don’t utilise plugins with assisted by which Trojans penetrate and through which pages on your websites are created.

    6- We don’t repeat templates and utilize only unique text and pictures

    We don’t work with website design; the client, if wanted, can then edit the websites to suit his wishes

  9. Devinpak说道:

    https://arusak-attestats.ru/ – Купить аттестат о среднем – путь к вашему будущему. В данном сервисе вы сможете легко и оперативно заказать аттестат, обязательный для последующего получения образования или трудоустройства. Наши специалисты обеспечивают качество и конфиденциальность услуги. Приобретайте школьный аттестат у нас и откройте дополнительные варианты для того, чтобы своего карьерного развития и карьеры.

  10. LarryGok说道:

    PBN sites
    We shall create a structure of PBN sites!

    Benefits of our privately-owned blog network:

    We execute everything SO THAT google DOES NOT realize that THIS IS A self-owned blog network!!!

    1- We purchase web domains from separate registrars

    2- The main site is hosted on a virtual private server (VPS is fast hosting)

    3- The rest of the sites are on distinct hostings

    4- We attribute a separate Google profile to each site with confirmation in Search Console.

    5- We make websites on WordPress, we do not use plugins with assistance from which malware penetrate and through which pages on your websites are created.

    6- We don’t repeat templates and use only distinct text and pictures

    We refrain from work with website design; the client, if desired, can then edit the websites to suit his wishes

  11. Walteronerb说道:

    https://casinvietnam.shop/# game c? b?c online uy tin

  12. Devinpak说道:

    Купить аттестат за 9 – путь к твоему перспективам. На нашем портале все вы можете легко и быстро заказать свидетельство, необходимый для того, чтобы последующего получения образования или трудоустройства. Наши специалисты обеспечивают высокое качество и конфиденциальность услуги. Заказывайте школьный аттестат здесь и проявите новые перспективы для своего образования и трудоустройства.

发表回复

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