正确地在QML应用中使用fontsize
我们知道我们有时须要显示text文本。可是,在QML应用中。我们应该怎样选择font的大小呢?在今天的这篇文章中,我们将展示在Ubuntu平台中的不同文字的大小。我们能够通过FontUtils来帮我们把“large”字体的text转换为pixel大小。
我们的測试应用例如以下:
- import QtQuick 2.4
- import Ubuntu.Components 1.3
- MainView {
- // objectName for functional testing purposes (autopilot-qt5)
- objectName: "mainView"
- // Note! applicationName needs to match the "name" field of the click manifest
- applicationName: "fontsize.liu-xiao-guo"
- width: units.gu(60)
- height: units.gu(85)
- property string fontsize: listview.currentItem.fontsize
- Page {
- title: i18n.tr("fontsize")
- Component {
- id: highlightBar
- Rectangle {
- width: 200; height: 50
- color: "#FFFF88"
- y: listview.currentItem.y;
- Behavior on y { SpringAnimation { spring: 2; damping: 0.1 } }
- }
- }
- Column {
- anchors.fill: parent
- spacing: units.gu(2)
- Text {
- id: unitsgu
- text: "1 units.gu = " + units.gu(1) + " pixels"
- }
- Row {
- spacing: units.gu(1)
- Text {
- id: mytext
- text: "我爱你。"
- font.pixelSize: (FontUtils.sizeToPixels(fontsize)).toFixed(2)
- }
- Text {
- text: mytext.font.pixelSize + " pixels"
- }
- Text {
- text: (mytext.font.pixelSize/units.gu(1)).toFixed(2) + " units.gu"
- }
- }
- Row {
- spacing: units.gu(1)
- Label {
- id: mylabel
- text: "我也爱你!
- "
- fontSize: fontsize
- }
- Text {
- text: mylabel.fontSize
- }
- Text {
- text: (FontUtils.sizeToPixels(mylabel.fontSize)).toFixed(2) + " pixels"
- }
- Text {
- text: (mytext.font.pixelSize/units.gu(1)).toFixed(2)+ " units.gu"
- }
- }
- ListView {
- id: listview
- anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width
- height: parent.height - mytext.height
- highlight: highlightBar
- model: ["xx-small","x-small", "small", "medium", "large", "x-large" ]
- delegate: Text {
- property string fontsize: modelData
- text: modelData + " " + (FontUtils.modularScale(modelData)).toFixed(2)
- font.pixelSize: units.gu(5)
- MouseArea {
- anchors.fill: parent
- onClicked: {
- listview.currentIndex = index
- }
- }
- }
- }
- }
- }
- }
显示的界面例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvVWJ1bnR1VG91Y2g=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="200" height="300" alt="">
我们能够通过改变在ListView中的font大小得到对应的pixsize及多少个units.gu值。依据这个,我们能够来选择我们适合的字体的大小。
整个项目的源代码在:https://github.com/liu-xiao-guo/fontsize
正确地在QML应用中使用fontsize的更多相关文章
- 在QML应用中实现threading多任务
在这个样例中,我们将介绍怎样在QML应用中使用QML语言提供的threading功能,实现多任务. 很多其它的阅读在:http://doc.qt.io/qt-5/qtquick-threading-e ...
- 怎样在QML应用中调用系统设置中的页面来设置我们的系统
我们在QML应用中有时须要调用系统设置(system settings)来完毕我们的一些设置.比方,我们在使用GPS来定位时,可能GPS并没有打开,假设在我们的应用中直接打开系统中的GPS设置页面,这 ...
- 在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么?
在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么? 例如: //! [0] GLWidget :: GLWidget(Helper * helper,QWidget * pare ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- 解决QML开发中ComboBox中一个已选择项没有清除的问题
解决QML开发中ComboBox中一个已选择项没有清除的问题 近期使用QML开发一个项目.须要使用ComboBox进行显示.当进行一个操作时,须要向ComboBox加入一个元素,当进行另外一个操作时. ...
- 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100
出现这个问题的背景是,判断一批激活码在系统中是否已经存在,很傻的一个作法是,把这一批激活码,以in(in (‘ddd‘,‘aaa‘))的形式来处理,导致问题的出现. 后来,查找资料,http://bb ...
- 关于如何正确地在android项目中添加第三方jar包
在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception.error inflati ...
- 如何通过Keil将程序正确的下载进flash中
前面介绍了一些创建工程和调试的基本步骤,在这里准备介绍一下如何正确的将Keil程序在仿真调试中下载到flash.这里再次涉及到了debug的窗口. 工具/原料 Keil uVision 4/5 ...
- 怎样在QML应用中创建一个Context Menu
我们在非常多的系统中看见能够在屏幕的一个地方长按,然后就能够依据当前显示的上下文弹出一个菜单. 菜单中能够有一些选项,比方删除,改动该项.这样的一般在ListView或GridView中常见.今天,我 ...
随机推荐
- spark scala word2vec 和多层分类感知器在情感分析中的实际应用
转自:http://www.cnblogs.com/canyangfeixue/p/7227998.html 对于威胁检测算法使用神经网络训练有用!!!TODO待实验 /** * Created by ...
- 23.STL容器小结
- 数据仓库 SSIS
SSDT 下载 :https://msdn.microsoft.com/en-us/library/mt204009.aspx Codeplex 上的 AdventureWorks 示例数据库此链接将 ...
- [转]60fps on the mobile web
Flipboard launched during the dawn of the smartphone and tablet as a mobile-first experience, allowi ...
- BootStrap--panel面板
1 <div class="panel panel-default"> <div class="panel-body"> 这是一个基本的 ...
- sys.path
sys.path.append() 和 sys.path.insert() python程序中使用 import XXX 时,python解析器会在当前目录.已安装和第三方模块中搜索 xxx,如果都搜 ...
- php动态导出数据成Excel表格
一.封装 Excel 导出类 include/components/ExecExcel.php <?php /*** * @Excel 导入导出类. */ class ExecExcel { / ...
- Nginx的日志备份操作
正常情况下,我们给一个日志文件做备份.通常会 mv access.log access.log.0313 ,之后创建一个新的 touch access.log 会认为是备份完成了:旧的日志 ...
- gcd步数
题目描述 一个有趣的函数F(a,b),表示对于数对(a,b)调用辗转相除法的步数为多少 例如 (24,40)....0 (16,24).....1 (8,16).....2 (0,8)....3,即f ...
- 紫书 习题 10-13 UVa 11526(打表找规律+分步枚举)
首先看这道题目,我预感商数肯定是有规律的排列的,于是我打表找一下规律 100 / 1 = 100 100 / 2 = 50 100 / 3 = 33 100 / 4 = 25 100 / 5 = ...