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

/ 25,842评论 / 145633阅读 / 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. RobertSmupt说道:

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

    http://prema-attestats.ru/

  2. link bokep说道:

    My programmer is trying to persuade me to move to .net from PHP.
    I have always disliked the idea because of the expenses.
    But he’s tryiong none the less. I’ve been using WordPress on a variety
    of websites for about a year and am worried about switching to another platform.
    I have heard fantastic things about blogengine.net. Is there a way I can transfer all my wordpress content into it?
    Any kind of help would be really appreciated!

  3. Devinpak说道:

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

  4. sandyterrace.com说道:

    thephotoretouch.com
    학교 운동장 한가운데에는 거대한 무대가 설치되었습니다.

  5. Walteronerb说道:

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

  6. sandyterrace.com说道:

    mikaspa.com
    반대로 노인의 얼굴은 여전히 평온하고 가볍게 말했다. “목적이 무엇입니까?”

  7. Walteronerb说道:

    https://casinvietnam.shop/# casino tr?c tuy?n vi?t nam

  8. LarryGok说道:

    PBN sites
    We will establish a structure of PBN sites!

    Advantages of our self-owned blog network:

    We execute everything SO THAT GOOGLE DOES NOT comprehend THAT this is A PBN network!!!

    1- We obtain web domains from distinct registrars

    2- The principal site is hosted on a VPS server (VPS is fast hosting)

    3- Other sites are on distinct hostings

    4- We allocate a individual Google profile to each site with confirmation in Search Console.

    5- We make websites on WP, we do not utilise plugins with assistance from which Trojans penetrate and through which pages on your websites are produced.

    6- We refrain from reproduce templates and utilize only exclusive text and pictures

    We never work with website design; the client, if wished, can then edit the websites to suit his wishes

  9. LarryGok说道:

    PBN sites
    We shall create a network of private blog network sites!

    Advantages of our private blog network:

    We carry out everything so Google doesn’t comprehend that THIS IS A private blog network!!!

    1- We buy domains from separate registrars

    2- The leading site is hosted on a virtual private server (Virtual Private Server is fast hosting)

    3- The rest of the sites are on various hostings

    4- We designate a unique Google profile to each site with verification in Search Console.

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

    6- We do not reproduce templates and utilise only exclusive text and pictures

    We do not work with website design; the client, if wanted, can then edit the websites to suit his wishes

  10. Walteronerb说道:

    https://casinvietnam.shop/# casino tr?c tuy?n

  11. RobertSmupt说道:

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

    http://prema-attestats.ru/

  12. Pretty nice ρost. I just stumblеd upon yօur weblog and wished to say that I have truly еnjoyed browsing your blog posts.
    After all I will be sսbscribing to your rsѕ feed and I hope you write again soon!

  13. Walteronerb说道:

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

  14. Walteronerb说道:

    http://casinvietnam.shop/# choi casino tr?c tuy?n tren di?n tho?i

回复 where to buy valtrex generic 取消回复

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