QML Book 第一章 初識(shí)

1.初識(shí) Qt5

本書(shū)將為大家介紹使用 Qt 5.x 版本開(kāi)發(fā)應(yīng)用程序的不同方面。我們將專注于新的 Qt Quick 技術(shù)录淡,同時(shí)提供了編寫(xiě) Qt Quick 的 C++ 后端和擴(kuò)展的一些必要信息删性。

本章提供了 Qt 5 的高級(jí)概述亏娜。我們將在本章展示開(kāi)發(fā)人員可用的不同應(yīng)用程序模型和一個(gè)對(duì)這些特性進(jìn)行預(yù)覽的 Qt 5 示例應(yīng)用程序。此外蹬挺,本章旨在全面概述 Qt 5 內(nèi)容维贺,以及如何與 Qt 5 的制作人員取得聯(lián)系。

1.1.前言

歷史

Qt 4 自 2005 年以來(lái)一直在不斷地發(fā)展和演進(jìn)巴帮,為數(shù)千個(gè)應(yīng)用甚至完整的桌面和移動(dòng)系統(tǒng)提供了堅(jiān)實(shí)的基礎(chǔ)溯泣。計(jì)算機(jī)用戶近年來(lái)的使用模式發(fā)生了變化虐秋。從固定電腦到便攜式筆記本電腦和現(xiàn)在的移動(dòng)終端。經(jīng)典桌面系統(tǒng)越來(lái)越多地被基于移動(dòng)終端的觸屏系統(tǒng)所替代垃沦。與此同時(shí)客给,桌面的用戶體驗(yàn)也在悄然發(fā)生著改變。在過(guò)去 Windows UI 占主導(dǎo)地位的地方肢簿,現(xiàn)在卻已被讓我們花費(fèi)更多的時(shí)間的使用另一種 UI 語(yǔ)言的屏幕所占據(jù)靶剑。

Qt 4 是旨在滿足桌面世界的,在所有主要平臺(tái)上提供一系列方便移植的 UI 小部件池充。Qt 用戶現(xiàn)在正在面臨更大的挑戰(zhàn)是為客戶提供由客戶需求驅(qū)動(dòng)的基于觸摸屏的用戶界面桩引,并在所有主要桌面和移動(dòng)系統(tǒng)上實(shí)現(xiàn)現(xiàn)代用戶界面。Qt 4.7 開(kāi)始引入的 Qt Quick 技術(shù)收夸,允許用戶從簡(jiǎn)單元素創(chuàng)建一組用戶界面組件坑匠,以實(shí)現(xiàn)由客戶需求驅(qū)動(dòng)的完整新 UI。

1.1.1.聚焦 Qt 5

Qt5 基于之前非常成功的 Qt 4 發(fā)行版咱圆。到 Qt 4.8 為止笛辟,Qt 4 發(fā)行版已經(jīng)將近 7 個(gè)年頭。現(xiàn)在到了讓一個(gè)驚艷的工具包更加驚艷的時(shí)候了序苏。Qt 5 專注于以下內(nèi)容:

  • 杰出圖形繪制技術(shù)(Outstanding Graphics):Qt Quick 2 基于使用場(chǎng)景圖實(shí)現(xiàn)的 OpenGL(ES)手幢。重新組合的圖形堆棧允許新的圖像效果與在此領(lǐng)域中從未見(jiàn)過(guò)的易用性結(jié)合在一起。
  • 更好地提高生產(chǎn)力(Developer Productivity):QML 和 JavaScript 是創(chuàng)建 UI 的主要手段忱详。后端將由 C++ 驅(qū)動(dòng)围来。JavaScript 和 C++ 之間的分割允許前端開(kāi)發(fā)人員快速迭代,專注于創(chuàng)建漂亮的用戶界面匈睁,而后端 C++ 開(kāi)發(fā)人員监透,專注于穩(wěn)定性,性能和延長(zhǎng)運(yùn)行時(shí)間航唆。
  • 跨平臺(tái)的可移植性(Cross-platform portability):通過(guò)統(tǒng)一的 Qt 平臺(tái)抽象技術(shù)胀蛮,現(xiàn)在可以更容易和更快地將 Qt 端口擴(kuò)展到更廣泛的平臺(tái)。Qt 5 圍繞 Qt Essentials 和附加組件的概念進(jìn)行構(gòu)建糯钙,它允許 OS 開(kāi)發(fā)人員將重點(diǎn)放在必需的模塊以及更少的運(yùn)行時(shí)間上粪狼。
  • 開(kāi)發(fā)和活躍的社區(qū)(Open Development):Qt 現(xiàn)在是一個(gè)真正的開(kāi)放式治理的項(xiàng)目 Qt-Project。它的發(fā)展是開(kāi)放和社區(qū)驅(qū)動(dòng)的任岸。

1.2. Qt 5 介紹

1.2.1. Qt Quick

Qt Quick 是 Qt 5 中使用的用戶界面技術(shù)的總稱再榄。Qt Quick 本身是幾種技術(shù)的集合:

  • QML - 用戶界面的標(biāo)記語(yǔ)言
  • JavaScript - 動(dòng)態(tài)腳本語(yǔ)言
  • Qt C++ - 高度可移植的增強(qiáng)型 C++ 庫(kù)
Qt 5 概述

與 HTML 類似,QML 也是標(biāo)記語(yǔ)言享潜。它由包含在大括號(hào)中的 Qt Quick 中稱為元素的標(biāo)簽組成困鸥。QML 是全新設(shè)計(jì)的,用于為開(kāi)發(fā)人員提供速度更快剑按,閱讀更容易的創(chuàng)建用戶界面的語(yǔ)言疾就。在 QML 中我們可以使用 JavaScript 代碼來(lái)增強(qiáng)用戶界面的體驗(yàn)澜术。通過(guò)在 Qt Quick 使用 Qt C++ 可以輕松擴(kuò)展我們的本地功能。簡(jiǎn)而言之猬腰,聲明式 UI 稱為前端瘪板,本地部分稱為后端。這樣做的好處是我們可以將應(yīng)用程序的密集運(yùn)算及本地操作部分與用戶界面部分分離漆诽。

在典型的項(xiàng)目中前端開(kāi)發(fā)使用 QML/JaveScript,后端代碼開(kāi)發(fā)使用 Qt C++ 來(lái)完成系統(tǒng)接口和繁重的計(jì)算工作锣枝。這更大限度地將面向設(shè)計(jì)的開(kāi)發(fā)人員和功能開(kāi)發(fā)人員之間的工作分開(kāi)開(kāi)展厢拭。通常后端是使用 Qt 自己的單元測(cè)試框架進(jìn)行測(cè)試,并為前端開(kāi)發(fā)人員導(dǎo)出要使用的接口撇叁。

1.2.2.一個(gè)用戶界面示例

讓我們用 Qt Quick 創(chuàng)建一個(gè)簡(jiǎn)單的用戶界面供鸠,它用于展示 QML 語(yǔ)言的一些特性。在這個(gè)示例中我們將實(shí)現(xiàn)一個(gè)帶旋轉(zhuǎn)葉片動(dòng)畫(huà)的風(fēng)車陨闹。

示例效果

我們從一個(gè)名為 main.qml 的空文件開(kāi)始楞捂。所有的 QML 文件都用 .qml 結(jié)尾。作為標(biāo)記語(yǔ)言(如HTML)趋厉,QML 文檔需要有一個(gè)唯一的根元素寨闹,在我們的例子中是基于背景圖像的寬度和高度的 Image 元素:

import QtQuick 2.3

Image {
    id: root
    source: "images/background.png"
}

由于 QML 沒(méi)有限制任何元素類型作為根元素,因此我們用將通過(guò)設(shè)置 source 屬性來(lái)顯示圖像作為背景圖的 Image 元素作為根元素君账。

背景圖片

提示:
每個(gè)元素都有屬性繁堡,例如一個(gè)圖像具有寬度,高度乡数,還有其他屬性椭蹄,如 source 屬性。像上面的代碼中展示的那樣净赴,Image 元素的寬高如果不進(jìn)行顯示地設(shè)置為有效的像素的話绳矩,它會(huì)自動(dòng)被設(shè)置為源圖像的大小。

最標(biāo)準(zhǔn)的 QML 元素位于我們?cè)诘谝恍兄惺褂?import 語(yǔ)句引入的 QtQuick 模塊中玖翅。

id 特殊屬性是可選的翼馆,它將包含稍后在文檔中,可以作為從其他位置引用此元素對(duì)象的標(biāo)識(shí)符烧栋。重要提示:id 屬性設(shè)置完成后無(wú)法更改写妥,并且在運(yùn)行時(shí)無(wú)法設(shè)置。使用 root 作為根元素的 id 只是作者的一種習(xí)慣审姓,可以在比較大的 QML 文檔中方便地引用最頂層元素珍特。

我們的示例中的界面的前景元素風(fēng)車手柄和風(fēng)車輪被放置作為單獨(dú)的圖像。

風(fēng)車手柄
風(fēng)車車輪

手柄放置在背景的水平中心底部魔吐。并且風(fēng)車車輪可以放置在背景的中心扎筒。

通常莱找,我們的用戶界面將由許多不同的元素類型組成,而不是像本示例中這樣僅僅有圖像元素嗜桌。

Image {
    id: root
    ...
    Image {
        id: pole
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottom: parent.bottom
        source: "images/pole.png"
    }

    Image {
        id: wheel
        anchors.centerIn: parent
        source: "images/pinwheel.png"
    }
    ...
}

要將車輪放置在中央位置奥溺,我們使用一個(gè)稱為錨點(diǎn)(anchors)的屬性。錨定允許我們指定父對(duì)象和子對(duì)象之間的幾何關(guān)系骨宠。例如:將當(dāng)前元素放在另一個(gè)元素的中心(anchors.centerIn: parent)浮定。我們用左邊(left),右邊(right)层亿,頂部(top)桦卒,底部(bottom),中央(centerIn)匿又,填充(fill)方灾,垂直居中(verticalCenter)和水平居中(horizontalCenter)來(lái)表示元素之間的關(guān)系。當(dāng)然碌更,他們是需要匹配使用的裕偿,如果把當(dāng)前元素的左側(cè)錨定到一個(gè)元素的頂端是沒(méi)有任何意義的。

至此痛单,我們已經(jīng)把風(fēng)車車輪設(shè)置在父元素的中心位置嘿棘。

提示:
有時(shí)我們需要對(duì)錨定的中心點(diǎn)進(jìn)行一些微小的調(diào)整。使用 anchors.horizontalCenterOffset 或者 anchors.verticalCenterOffset 可以幫助我們輕松地實(shí)現(xiàn)這個(gè)功能桦他。類似的調(diào)整屬性也可以用于其他所有的錨蔫巩。通過(guò)查閱 Qt 的幫助文檔我們可以知道完整的錨屬性列表。

提示:
將一個(gè)圖像作為根矩形元素的子元素放置展示了聲明式語(yǔ)言的重要特性快压。我們以層和分組的順序描述了用戶界面圆仔,最頂部的一層元素(根矩形框)先繪制,在包含元素的局部坐標(biāo)系中子層元素被繪制在頂層元素的上面蔫劣。

為了讓我們的展示更加有趣一點(diǎn)坪郭,我們應(yīng)該讓程序有一些交互功能。策略是脉幢,當(dāng)用戶點(diǎn)擊程序的某個(gè)位置時(shí)歪沃,使風(fēng)車的車輪轉(zhuǎn)動(dòng)起來(lái)。

為了實(shí)現(xiàn)監(jiān)測(cè)用戶點(diǎn)擊功能嫌松,我們加入 MouseArea 元素沪曙,并使其大小與根元素一樣大。

Image {
    id: root
    ...
    MouseArea {
        anchors.fill: parent
        onClicked: wheel.rotation += 90
    }
    ...
}

當(dāng)用戶在其覆蓋區(qū)域內(nèi)點(diǎn)擊時(shí)萎羔,鼠標(biāo)區(qū)域發(fā)出信號(hào)液走。我們可以通過(guò)重新 onClicked 接口來(lái)監(jiān)聽(tīng)這個(gè)信號(hào)。上面的代碼中,我們引用風(fēng)車的車輪圖像的 id 來(lái)引用它并將其旋轉(zhuǎn)+90度缘眶。

提示:
on + SignalName 的命名方式對(duì)于每個(gè)信號(hào)都是有效的嘱根。另外當(dāng)屬性的值發(fā)生改變時(shí)也會(huì)發(fā)出一個(gè)信號(hào)。此時(shí)的命名方式是:on + PropertyName + Chagned巷懈。 例如:當(dāng)寬度(width)屬性改變時(shí)该抒,我們可以使用 onWidthChanged:print(width) 來(lái)監(jiān)控并得到這個(gè)新的寬度值。

現(xiàn)在風(fēng)車輪子會(huì)旋轉(zhuǎn)了顶燕,但是效果仍然不那么流暢凑保。旋轉(zhuǎn)屬性被直接更改了。效果幾乎是一閃而過(guò)涌攻。我們更希望這個(gè)旋轉(zhuǎn)效果是動(dòng)態(tài)實(shí)現(xiàn)的愉适。動(dòng)畫(huà)定義了在一段時(shí)間內(nèi)如何分配屬性更改。為了實(shí)現(xiàn)這一點(diǎn)癣漆,我們使用一個(gè)名為 property behavior 的動(dòng)畫(huà)類型。對(duì)于應(yīng)用于該屬性的每個(gè)更改剂买,“行為”將為屬性運(yùn)行指定的動(dòng)畫(huà)惠爽。簡(jiǎn)而言之,每次該屬性更改時(shí)瞬哼,都會(huì)運(yùn)行動(dòng)畫(huà)婚肆。這只是在 QML 中聲明動(dòng)畫(huà)的幾種方式之一。

Image {
    id: root
    Image {
        id: wheel
        Behavior on rotation {
            NumberAnimation {
                duration: 250
            }
        }
    }
}

現(xiàn)在無(wú)論何時(shí)風(fēng)車車輪的旋轉(zhuǎn)屬性改變后坐慰,將使用持續(xù)時(shí)間為 250 ms 的 NumberAnimation 動(dòng)畫(huà)組件進(jìn)行動(dòng)畫(huà)處理较性。所以每次 90 度旋轉(zhuǎn)都需要經(jīng)過(guò) 250 毫秒。

運(yùn)行效果

提示:
我們實(shí)際上不會(huì)看到上圖中的風(fēng)車車輪的模糊效果结胀。這幅圖只是為了表明車輪正在旋轉(zhuǎn)赞咙。但是一個(gè)模糊的輪子在資源文件夾中。也許我們會(huì)想嘗試使用它糟港。

現(xiàn)在風(fēng)車的輪子看起來(lái)已經(jīng)好多了攀操,以上這些,就是關(guān)于Qt Quick 程序設(shè)計(jì)是如何工作的一個(gè)大概的簡(jiǎn)介了秸抚。

1.3. Qt 的組成模塊

Qt 5 由大量模塊組成速和。一個(gè)模塊一般就是供開(kāi)發(fā)人員使用的一個(gè)庫(kù)。某些模塊對(duì)于啟用 Qt 的平臺(tái)是必須的剥汤。它們形成一個(gè)名為 Qt Essentials Modules 的集合颠放。許多模塊是可選的,它們形成了 Qt 的附加模塊吭敢。預(yù)計(jì)大多數(shù)開(kāi)發(fā)人員不需要使用它們碰凶,但是了解他們是很有價(jià)值的,因?yàn)樗鼈優(yōu)槲覀兛赡苡龅降某R?jiàn)問(wèn)題提供了寶貴的解決方案。

1.3.1. Qt 模塊

Qt Essentials 模塊對(duì)于啟用 Qt 平臺(tái)是必須的痒留。它們?yōu)槭褂?Qt Quick 2 開(kāi)發(fā)現(xiàn)代 Qt 5 應(yīng)用程序提供了基礎(chǔ)谴麦。

Core-Essential(核心基礎(chǔ))模塊。

下表是啟動(dòng) QML 編程開(kāi)發(fā)的最小 Qt 5 模塊伸头。

模塊名稱 簡(jiǎn)介
Qt Core 其他模塊使用的核心非圖形類
Qt GUI 圖形用戶界面(GUI)組件的基類匾效。包括 OpenGL。
Qt Multimedia 音頻恤磷,視頻面哼,收音機(jī)和攝像機(jī)功能類。
Qt Network 使網(wǎng)絡(luò)編程更容易扫步,更容易移植的類魔策。
Qt QML QML 和 JavaScript 語(yǔ)言的支持類。
Qt Quick 用于使用自定義用戶界面構(gòu)建高動(dòng)態(tài)應(yīng)用程序的聲明框架河胎。
Qt SQL 使用 SQL 進(jìn)行數(shù)據(jù)庫(kù)集成的類闯袒。
Qt Test Qt 應(yīng)用程序和庫(kù)的單元測(cè)試類。
Qt WebKit 基于 WebKit2 的實(shí)現(xiàn)和新的 QML API 的類游岳。 另請(qǐng)參見(jiàn)附加模塊中的 Qt WebKit Widgets政敢。
Qt WebKit Widgets 來(lái)自 Qt 4 的 WebKit1 和 QWidget的基礎(chǔ)類。
Qt Widgets 使用 C++ Widgets 的擴(kuò)展 Qt GUI 類胚迫。
核心基礎(chǔ)模塊依賴關(guān)系

1.3.2. Qt 附件模塊

除了必要的模塊喷户,Qt 還為軟件開(kāi)發(fā)人員提供了額外的模塊,這些模塊不一定是發(fā)行版的一部分访锻。 以下是可用的附加模塊的簡(jiǎn)短列表褪尝。

模塊名稱 簡(jiǎn)介
Qt 3D 一組使 3D 圖形編程變得簡(jiǎn)單易懂的 API
Qt Bluetooth 在多平臺(tái)上使用無(wú)線藍(lán)牙技術(shù)的 C++ 和 QML 應(yīng)用程序接口
Qt Contacts 提供訪問(wèn)聯(lián)系人與聯(lián)系人數(shù)據(jù)庫(kù)的 C++ 和 QML 應(yīng)用程序接口
Qt Location 提供了定位,地圖期犬,導(dǎo)航和位置搜索的 C++ 與 QML 接口河哑。使用 NMEA 在后端進(jìn)行定位
Qt Organizer 提供了組織事件(任務(wù)清單,事件等等)的 C++ 和 QML 應(yīng)用程序接口
Qt Publish and Subscribe Qt 發(fā)布與訂閱
Qt Sensors 通過(guò) QML 和 C++ 接口訪問(wèn)傳感器
Qt Service Framework 允許應(yīng)用程序讀取龟虎,操縱和訂閱來(lái)改變通知信息
Qt System Info 發(fā)現(xiàn)系統(tǒng)相關(guān)的信息和功能
Qt Versit 支持vCard和iCalendar格式
Qt Wayland 只用于 Linux 系統(tǒng)灾馒。包含了 Qt 合成器應(yīng)用程序接口(server)和 Wayland 平臺(tái)插件(clients)
Qt Feedback 反饋用戶的觸摸和聲音操作
Qt JSON DB 用于 Qt 的非 SQL(no-SQL)對(duì)象存儲(chǔ)

提示:
由于這些模塊不一定是發(fā)行版的一部分,所以模塊之間的狀態(tài)不同遣总,取決于貢獻(xiàn)者的數(shù)量有多少以及測(cè)試的程度睬罗。

1.4. 支持的平臺(tái)

Qt 支持各種平臺(tái)。Qt 支持所有主流的桌面和嵌入式平臺(tái)旭斥。通過(guò) Qt 應(yīng)用抽象(Qt Application Abstraction)技術(shù)容达,如果需要,現(xiàn)在可以更容易將 Qt 應(yīng)用到我們自己的平臺(tái)垂券。

在一個(gè)平臺(tái)上測(cè)試 Qt 5 是非常耗時(shí)的花盐。qt 項(xiàng)目選擇了一組平臺(tái)羡滑,構(gòu)建了參考平臺(tái)。這些平臺(tái)通過(guò)系統(tǒng)測(cè)試進(jìn)行徹底測(cè)試算芯,以確保最佳質(zhì)量柒昏。但是注意:沒(méi)有任何代碼是沒(méi)有錯(cuò)誤的。

Qt 項(xiàng)目

來(lái)看下qt-project wiki
“Qt 項(xiàng)目(Qt-Project)是一個(gè)對(duì) Qt 有興趣的基于共識(shí)的精英團(tuán)體熙揍,任何有興趣的人都可以加入社區(qū)职祷,參與決策過(guò)程,并為Qt的發(fā)展作出貢獻(xiàn)届囚∮邪穑”

Qt-Project 是一個(gè)為 Qt 未來(lái)開(kāi)發(fā)開(kāi)源部分的組織。它基于使用者的貢獻(xiàn)意系。最大的貢獻(xiàn)者是 DIGIA泥耀,它也可以提供 Qt 的商業(yè)授權(quán)。

對(duì)于公司而言 Qt 有一個(gè)開(kāi)源的許可和一個(gè)商業(yè)許可蛔添。商業(yè)許可適用于那些不能或不會(huì)遵守開(kāi)源許可證的公司痰催。沒(méi)有獲得商業(yè)許可,這些公司將無(wú)法使用 Qt迎瞧,并且允許 DIGIA 不向 Qt 項(xiàng)目貢獻(xiàn)這部分需要商業(yè)許可的代碼陨囊。

在全球有很多公司,他們?cè)诓煌钠脚_(tái)上使用 Qt 開(kāi)發(fā)產(chǎn)品夹攒,提供咨詢。同樣也有很多開(kāi)源項(xiàng)目和開(kāi)源開(kāi)發(fā)者胁塞,它們使用 Qt 作為它們的開(kāi)發(fā)庫(kù)咏尝。與這個(gè)令人敬畏的工具庫(kù)一起工作并且成為這個(gè)充滿活力的社區(qū)的一部分令人愉悅的事。它能讓你成為一個(gè)更好的人嗎啸罢? 為什么不會(huì)呢编检?:-)

開(kāi)啟社區(qū)貢獻(xiàn)之旅吧!

本文參考鏈接:Meet Qt 5

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扰才,一起剝皮案震驚了整個(gè)濱河市允懂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衩匣,老刑警劉巖蕾总,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異琅捏,居然都是意外死亡生百,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門柄延,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蚀浆,“玉大人,你說(shuō)我怎么就攤上這事∈锌。” “怎么了杨凑?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)摆昧。 經(jīng)常有香客問(wèn)我撩满,道長(zhǎng),這世上最難降的妖魔是什么据忘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任鹦牛,我火速辦了婚禮,結(jié)果婚禮上勇吊,老公的妹妹穿的比我還像新娘曼追。我一直安慰自己,他們只是感情好汉规,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布礼殊。 她就那樣靜靜地躺著,像睡著了一般针史。 火紅的嫁衣襯著肌膚如雪晶伦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天啄枕,我揣著相機(jī)與錄音婚陪,去河邊找鬼。 笑死频祝,一個(gè)胖子當(dāng)著我的面吹牛泌参,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播常空,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼沽一,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了漓糙?” 一聲冷哼從身側(cè)響起铣缠,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昆禽,沒(méi)想到半個(gè)月后蝗蛙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡醉鳖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年歼郭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辐棒。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡病曾,死狀恐怖牍蜂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泰涂,我是刑警寧澤鲫竞,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站逼蒙,受9級(jí)特大地震影響从绘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜是牢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一僵井、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驳棱,春花似錦批什、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至形葬,卻和暖如春合呐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笙以。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工淌实, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猖腕。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓拆祈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親谈息。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容