成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼

使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼

熱門標簽:商家地圖標注海報 ai電銷機器人的優(yōu)勢 海外網(wǎng)吧地圖標注注冊 聊城語音外呼系統(tǒng) 打電話機器人營銷 南陽打電話機器人 孝感營銷電話機器人效果怎么樣 地圖標注自己和別人標注區(qū)別 騰訊地圖標注沒法顯示

1.視圖模型介紹

在Qml中、常見的View視圖有:

  • ListView: 列表視圖,視圖中數(shù)據(jù)來自ListModel、XmlListModel或c++中繼承自QAbstractItemModel或QAbstractListModel的自定義模型類
  • TableView: 和excel類似的視圖
  • GridView: 網(wǎng)格視圖,類似于home菜單那樣,排列著一個個app小圖標
  • PathView: 路徑視圖,可以根據(jù)用戶自定義的path路徑來顯示不一樣的視圖效果
  • SwipeView: 滑動視圖,使用一組頁面填充。每次只顯示一個頁面。用戶可以通過橫向滑動在頁面之間導航,一般會將它與PageIndicator結(jié)合使用

本章首先來學習ListView.以微信好友列表為例:

里面的每個好友就是由一個個 item 組成的,存在視圖中的model里,然后寫一個delegate組件,即可通過ListView顯示出來.

由于時間不是很多,所以本章實現(xiàn)的微信好友列表和聊天列表(v1版本)是通過模擬數(shù)據(jù)實現(xiàn)的,等后面有時間后,再來實現(xiàn)個一個真正的內(nèi)網(wǎng)聊天工具.

2.demo實現(xiàn)(支持自適應(yīng))

好友列表如下圖所示:

聊天列表如下圖所示:

整個效果如下所示:

覺得GIF模糊的話,可以轉(zhuǎn)彎去bilibilihttps://www.bilibili.com/video/BV1Z64y1R7kL/

由于代碼上傳CSDN,會導致有些同學可能沒積分無法下載,所以已經(jīng)上傳群里了.

如果下載后學習有收獲,一定要來這里給我點個贊呀,都沒動力更新文章了,贊的人太少了

3.重要組件-實現(xiàn)氣泡組件源碼

import QtQuick 2.0
import "BubbleNormal.js" as BubbleNormal
import "BubbleBlue.js" as BubbleBlue
import "BubbleBlack.js" as BubbleBlack


Item {
    id: container
    property var bubbleIndex: 0
    property string msgText: ""
    property bool isSend: true
    property int iconHeight: 40
    property int maxWidth: 100

    Canvas {
        id: canvas
        anchors.fill: parent

        onPaint: {
            bubble().drawBubble(getContext('2d'));
        }
    }

    Text {
        id: text
        text: msgText
        font.pixelSize: 17
        font.family: "Microsoft Yahei"
        wrapMode: Text.WrapAnywhere

        horizontalAlignment:  Text.AlignLeft
        verticalAlignment: Text.AlignVCenter
        anchors.fill: parent
    }

    Component.onCompleted: {
        bubble().initText();
        bubble().reUpdateSize();
        canvas.requestPaint();
    }

    onBubbleIndexChanged: {
        bubble().initText();
        bubble().reUpdateSize();
        canvas.requestPaint();
    }
    function bubble() {
        switch (bubbleIndex) {
            case 0 :  return BubbleNormal
            case 1 :  return BubbleBlue
            case 2 :  return BubbleBlack
            default: return BubbleNormal
        }
    }

}

代碼如上所示,只要用戶更改了bubbleIndex值,那么我們就會去馬上調(diào)用替換后對應(yīng)的氣泡js文件的function(),進行初始化消息、重繪氣泡背景。這個組件實現(xiàn)后,我們?nèi)绻雽崿F(xiàn)其它的氣泡,也可以直接往里加就好了

4.重要組件-實現(xiàn)聊天列表委托源碼

/****************************************************************************
**  聊天列表委托
** Author   : 諾謙 https://www.cnblogs.com/lifexy/
** Create   : 2021-6-12
****************************************************************************/

import QtQuick 2.12
import QtGraphicalEffects 1.12
import "./bubble" as Bubble
import "qrc:/Common.js" as Common

Item {
    id: container
    property var headSrc
    property var myHeadSrc : "qrc:/head/myhead.jpg"
    property var bubbleIndex : 0

    height: _layout.height + 10
    width: ListView.view.width
    state: msgType
    states: [
        State {
              name: "hint"
              AnchorChanges { target: _layout;
                  anchors.horizontalCenter: container.horizontalCenter;
                  anchors.verticalCenter: container.verticalCenter; }
        },
        State {
              name: "hintDate"
              AnchorChanges { target: _layout;
                  anchors.horizontalCenter: container.horizontalCenter;
                  anchors.verticalCenter: container.verticalCenter; }
        },
        State {
              name: "recv"
              AnchorChanges { target: _layout;
                  anchors.left: container.left;
                  anchors.verticalCenter: container.verticalCenter; }
        },
        State {
              name: "send"
              AnchorChanges { target: _layout;
                  anchors.right: container.right;
                  anchors.verticalCenter: container.verticalCenter; }
        }
    ]

    Row {
        id: _layout
        anchors.leftMargin: 20
        anchors.rightMargin: 20
        spacing: 4
        layoutDirection : msgType == "send" ? Qt.RightToLeft : Qt.LeftToRight
        HeadImage {
            id: _head
            width : 50
            height : 50
            headUrl: msgType == "recv" ? headSrc : myHeadSrc
            visible: msgType == "recv" || msgType == "send"
        }

        Text {
            id: _hint
            visible: msgType == "hintDate" || msgType == "hint"
            text: msgType == "hintDate" ? getChatDate() : msg
            color: "#B0B0B0"
            font.pixelSize: 14
            font.family: "Microsoft Yahei"
            wrapMode: Text.WrapAnywhere
            elide: Text.ElideRight
            width: container.width - 40
            height: 30
            horizontalAlignment: Text.AlignHCenter
            verticalAlignment: Text.AlignVCenter
        }

        Bubble.ChatBubble {
            id: _msg
            visible: msgType == "recv" || msgType == "send"
            msgText:  msgType == "recv" || msgType == "send" ?  msg : ""
            isSend: msgType == "send" ? true : false
            iconHeight: _head.height
            maxWidth: container.width - _layout.anchors.leftMargin * 2 - _head.width * 2 - _layout.spacing * 2
            bubbleIndex: container.bubbleIndex
        }
    }


    // 判斷消息時間,與當前時間間隔多久,來動態(tài)顯示
    function getChatDate () {
        var total = new Date() - date;
        if (total  (1000*60*60*24)) {
            return date.toLocaleTimeString(Qt.locale(), "hh:mm");
        } else if (total  (1000*60*60*24) * 2) {
            return "昨天 "+date.toLocaleTimeString(Qt.locale(), "hh:mm");
        } else if (total  (1000*60*60*24) * 3) {
            return "前天 "+date.toLocaleTimeString(Qt.locale(), "hh:mm");
        } else {
            return date.toLocaleString(Qt.locale(), "yyyy年M月d日 hh:mm");
        }
    } 
}

代碼如上所示,我們會去判斷消息類型:

  • 如果消息類型是"hint"類型,就直接居中顯示。
  • 如果消息類型是"hintDate"類型,則調(diào)用getChatDate()來動態(tài)獲取要如何顯示時間.
  • 如果消息類型是"recv"類型,則靠左顯示對方頭像,并加上氣泡消息
  • 如果消息類型是"send"類型,則靠又顯示自己頭像,并加上氣泡消息

以上就是qt quick-ListView高仿微信好友列表和聊天列表的詳細內(nèi)容,更多關(guān)于qt 微信好友列表和聊天列表的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Qt實現(xiàn)網(wǎng)絡(luò)聊天室的示例代碼

標簽:牡丹江 揚州 迪慶 撫州 南寧 六盤水 楊凌 聊城

巨人網(wǎng)絡(luò)通訊聲明:本文標題《使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼》,本文關(guān)鍵詞  使用,quick-ListView,仿微,信,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    翔田千里一区| 欧美午夜在线播放| 国产精品免费看一区二区三区| 五月婷婷综合色| 精品国产伦一区二区三| 4k岛国日韩精品**专区| 男女视频一区二区| 天堂在线观看免费视频| 男女全黄做爰文章| 日本精品久久久久久久久久| 色噜噜色狠狠狠狠狠综合色一| av资源中文在线天堂| 欧美日韩免费观看一区| 久久久久久成人网| 爱高潮www亚洲精品| 国产伦理一区二区| 国产丝袜视频在线播放| 亚洲国产成人精品无码区99| 国内精品麻豆美女在线播放视频| 日韩乱码人妻无码中文字幕| 日本黄色免费网址| 国模吧一区二区| 一区二区精品伦理...| 91久久精品国产91性色| 国产精品午夜剧场| 国产又粗又猛视频免费| 中文字幕日韩在线| 亚洲精品视频免费| 国产黄色录像片| 成人偷拍自拍| 黄色精品一区| 超级砰砰砰97免费观看最新一期| 久久国产生活片100| www.欧美com| 日本h片在线| 蜜桃传媒一区二区三区| 在线免费看v片| videos性欧美另类高清| 中文字幕一区图| 国产精品高潮呻吟久久av野狼| 亚洲色图插插| 视频一区欧美日韩| 亚洲欧美自拍另类日韩| 日本精品视频一区| 一区二区三区在线播放视频| 国产短剧电视剧免费观看| 精品国产一区二区三区av性色| 日本在线不卡一区二区| 免费观看黄色一级视频| 美女xx视频| 免费黄色大片| 麻豆精品视频在线观看免费| 奇米综合一区二区三区精品视频| 亚洲自拍偷拍在线| 大肉大捧一进一出好爽视频| 一区二区免费在线播放| 高清国产一区二区| 久久影视一区二区| 中文字幕免费一区二区三区| 北条麻妃在线观看视频| 成人观看免费视频| 亚洲成人影音| 欧美日韩第一视频| 97在线免费视频观看| 精品女同一区二区三区| 国产福利视频一区二区| 亚洲精品中文字幕在线观看| 亚洲日本中文字幕| 成人无码一区二区三区| 日韩在线观看电影完整版高清免费| 亚洲熟妇国产熟妇肥婆| 中文字幕欧美日本乱码一线二线| 日本一区二区视频在线观看| 亚洲色图欧美视频| 黑人巨大猛交丰满少妇| 狠狠插狠狠操| 日韩中文字幕视频网| 中文字幕观看视频| 亚洲国产精品高清久久久| 国产成人激情小视频| 亚洲精品成人av久久| 欧美日韩成人在线视频| 91小视频免费看| 高h视频在线播放| 国产日韩视频在线播放| 黄色的电影在线-骚虎影院-骚虎视频| 久久综合99re88久久爱| 国偷自产av一区二区三区| 欧美野外wwwxxx| 国产又黄又爽视频| 国产成人亚洲综合| av电影院在线看| 外卖gayxxxxgay1| 精品一区2区三区| 欧美14一18处毛片| www.好吊色| 99精品一区二区三区的区别| 欧美亚洲日本一区| 山东少妇露脸刺激对白在线| 天天色图综合网| 2021年精品国产福利在线| 欧美剧在线免费观看网站| 91精品高清| 久久69av| 亚洲丝袜在线视频| 亚洲日本精品国产第一区| 欧美重口另类videos人妖| 4438全国亚洲精品在线观看视频| 国产精品国产三级国产aⅴ| 国产剧情麻豆剧果冻传媒视频免费| 国产一区在线观看视频| 色无极影院亚洲| 91夜夜未满十八勿入爽爽影院| 国产精品自产自拍| 免费看黄视频网站| eeuss鲁片一区二区三区在线观看| 2017天天干夜夜操| 久久91导航| 精品国产伦一区二区三区免费| 欧美aⅴ99久久黑人专区| 日韩精品一区二区三区在线观看| 国产福利一区二区在线精品| 日本在线观看视频网站| 日本久久成人网| 香蕉在线播放| 精品一区二区三区视频| 色呦呦在线资源| 日韩伦理电影网站| 黄色一级大片在线免费看产| 日韩有码第一页| 久久新电视剧免费观看| 亚洲一级片免费观看| 亚洲福利一区二区三区| 亚洲激情五月婷婷| 国产制服丝袜一区| 久久一级免费视频| 极品美乳网红视频免费在线观看| 亚洲欧美一区二区三区孕妇| 99久久免费精品国产免费| 欧美福利电影在线观看| 99久久精品国产亚洲精品| 无码日韩精品一区二区免费| 欧美一区二区在线播放| 国产精品久久亚洲7777| 午夜av在线免费观看| 国产偷久久久精品专区| 国产国语老龄妇女a片| 自拍亚洲欧美老师丝袜| 成人免费黄色在线| 国产成人无码av在线播放dvd| 顶级嫩模精品视频在线看| 青青草原综合久久大伊人精品| 久久国产精品影视| 黄色日本网站| 91蜜桃免费观看视频| xx视频.9999.com| 亚洲图片小说视频| 波多野结衣视频观看| 伊人成人222| 91在线高清视频| 国产一二三四五| 国产成人午夜片在线观看高清观看| 精品福利视频导航| ass白嫩白嫩的小美女| 日本国产一区二区| 亚洲高清av一区二区三区| 亚洲深夜福利在线| 欧美亚洲免费高清在线观看| 91久久国产综合久久91| 欧美国产日韩精品| 老司机久久99久久精品播放免费| 97视频在线播放| 精品国产人妻一区二区三区| 国产一区国产二区国产三区| 91久久精品无码一区二区| 91深夜福利| 蜜桃视频第一区免费观看| 国产精品18久久久久久麻辣| 一区二区三区四区在线看| 国产日韩一区二区三区在线播放| 激情五月综合| 男人艹女人网站| a级黄色片免费看| 91高清视频免费观看| 奇米网人体黄视频| 久久亚洲精选| 手机亚洲手机国产手机日韩| 国产成人av电影在线| 日韩激情精品| 欧美人与牲动交xxxxbbbb| 日韩一区二区在线看| youjizzjizz亚洲| 久久精品国产亚洲a| 在线观看你懂得| 日本不卡一二三区| 日韩av在线电影网| 你懂的视频在线观看资源| 欧美日韩视频网站| 蜜臀av午夜一区二区三区| 在线观看免费黄色小视频| 免费看日韩av| 日韩成人小视频| 欧美亚韩一区| 久久精品三级| 黄色大片网站在线观看| 日本欧美大码aⅴ在线播放| 97影院理论片在线播放| 日本另类视频| 2023国产精品自拍| 精品少妇一区二区30p| 日日狠狠久久偷偷综合色| 国产叼嘿网站免费观看不用充会员| 亚洲av无码不卡| 北条麻妃国产九九精品视频| 九色蝌蚪在线视频| 污污视频网站在线免费观看| 国产在线精品一区二区三区| jlzzjlzz亚洲女人| 国产亚洲欧美另类中文| 久久爱一区二区| 91插插插插插插| 青青草精品在线| 少妇aaaaa| 亚洲一区二区三区四区五区黄| 国色天香一二三期区别大象| 亚洲高清一区二区三区| 在线观看wwww| 人成在线免费视频| 亚洲成人激情在线观看| 国产精品裸体一区二区三区| 欧美少妇bbw| 亚洲日本三级| 欧美伦理视频在线观看| 国产精品爱啪在线线免费观看| 男女私大尺度视频| 亚洲美女久久久| 久久www免费人成看片高清| 国产精品老女人精品视频| 欧美日韩国产一区中文午夜| 二区三区偷拍浴室洗澡视频| 91超碰caoporn97人人| 奇米影视777在线欧美电影观看| 9a蜜桃久久久久久免费| 99在线精品观看| 成年人视频在线观看免费| 亚洲一区中文| 高清在线观看免费韩剧| 日本中文字幕网址| 一级片视频播放| 挪威xxxx性hd极品| 免费久久久一本精品久久区| 午夜精品久久久99热福利| 欧美日韩精品一区二区三区四区| 日韩精品影视| 1区2区3区视频| 在线精品免费视| 国产日韩精品一区二区三区| 亚洲成人在线观看视频| 爱福利一区二区| 日韩精品成人一区二区三区| 视频国产一区二区| 99精品网站| 成人精品一区二区三区电影黑人| 动漫一区二区在线| 在线观看午夜看亚太视频| 久久精品a一级国产免视看成人| 后进极品白嫩翘臀在线播放| 久久国产精品区| 久久精品一区二区免费播放| 91专区视频| 四色成人av永久网址| 春暖花开亚洲一区二区三区| 艳母动漫在线看| 精品人妻一区二区三区日产乱码| 免费99精品国产自在在线| 亚洲AV无码乱码国产精品牛牛| 国产一区一区三区| 鲁啊鲁视频在线精品| 狠狠色噜噜狠狠| 国产专区一区二区三区| 日本a√在线观看| 色偷偷男人天堂| 91精品久久久久久久久99蜜臂| y97精品国产97久久久久久| 91嫩草国产线观看亚洲一区二区| 日本少妇xxxx软件| 蜜臀av一区二区三区| 亚洲美女动态图120秒| 国产av无码专区亚洲av麻豆| 日韩中文字幕在线视频| 亚洲女同ⅹxx女同tv| 亚洲一区二区三区免费| 国产视频一区二区在线播放| 国产精品久久久久三级| 久久国产波多野结衣| 2018天天操夜夜操| 国产精品chinese| 国产精品美女视频网站| 久久99精品网久久| 国产一区二区三区精品久久久| 中文字幕综合在线| 日韩精品在线观看一区二区| 免费观看v片在线观看| 亚洲二区在线播放视频| 欧美激情在线播放| 久久精品久久久久久久| 欧美性猛片xxxxx免费中国| xxx免费视频观看| 欧美精品色婷婷五月综合| 国产成人免费高清视频| 免费国产麻豆传| 91成人网在线观看| 亚洲av无码一区二区三区性色| av网站一区二区三区| 97精品伊人久久久大香线蕉| 亚洲一卡二卡三卡四卡| 91美女片黄在线观看91美女| 欧美一区二区性| 紧身裙女教师波多野结衣| 啊啊啊久久久| heyzo高清在线| 久久成人综合| 国产一区二区三区黄片| 欧美成人手机在线| 小早川怜子痴女在线精品视频| 日本高清免费电影一区| www.色视频| 一本大道久久a久久精品|