0x00.本课你将学到
0x01.第一个Qt Widget程序
首先我们先打开安装好的Qt Creator
Qt Creator左上角,文件->新建文件或项目
输入相关信息
无脑“下一步”,直到
根据自己情况选择编译器,其中MSVC含WebView(现在已经改名了),MinGW不含
然后就一直“下一步”,直到最后“完成”就创建好喽~
0x02.如何使用Qt Creator运行Qt Widget程序
点击运行
0x03.Qt Designer界面介绍
程序是运行出来了,可是我们的程序还是一个白板,要美观不美观,要功能没功能。
别急,我们这就给它添加组件,我们双击这个ui文件
现在让我们给程序填点花样吧!
0x04.QLabel介绍
我们找到Label,拖到预览窗口里
我们可以再右下角的组件属性窗口里查看这个QLabel的属性
我们可以发现,QLabel是QFrame的子类,QFrame是QWidget的子类,QWidget又是QObject的子类。
而QObject的属性只有objectName一个,就是指QLabel作为一个变量的名字。
举个例子吧:
既然QLabel是一个类,我们就可以把它实例化。
QLabel* mylabel = new QLabel();
其中的mylabel就是所谓的objectName
我们再来看QLabel作为QWidget的属性
enable指是否启用该组件,这个开关指是否让该组件可以和用户互动,而不是让它消失,暂时禁用,这个属性在Label上体现不明显,勾选后Label的文字会变成灰色,就是常见的“不可操作”状态。
geometry是指组件的坐标和大小,在绝大多数的GUI框架中,预览窗口的左上角为(0,0)点,详情请看下图
geometry中的x和y指组件左上角那一点的坐标,如果我将其设置为(0,0)将会是这个样子
sizePolicy、minimumSize、maximumSize、sizeIncrement、baseSize在设置了相对布局后生效,目前我们设置的是绝对布局,因此暂时不对此进行讲解
palette指组件的颜色风格等等,由于本人没用过,因此本人不敢讲解
font可以修改这个Label用到字体,字号等等
cursor指当鼠标在这个组件上方时,呈现什么样子的指针(不知道该怎么截图,需要自己尝试一下)
mouseTracking勾选后,组件将持续监听鼠标的移动操作,当不勾选的时候,组件只有在鼠标按下后才监听鼠标的移动操作。
tabletTracking好像是跟踪触控笔的?没用过,原谅我,并不清楚。
此处省略我不是很熟悉的属性哈
toolTip提供鼠标悬停时的提升
styleSheet允许使用简单的css语法装饰组件
QFrame主要提供边框操作
接下来是QLabel自己的属性了
text表示显示哪些东西,textFormat表示文本类型
在下面的例子中,我text填写了html标签,textFormat为autoText,也就自动推断为富文本标签,就自动给我渲染出了h1标签的效果
当我选择PlainText就被打回了原形
pixmap是选择图片的,没错,QLabel出了可以放文本之外还可以放图片。这个和后面资源文件一起讲。scaleContents也和图片有关。
alignment调整文字在Label中的位置
wordWrap在文本过长时自动换行,而且换行会符合换行规范,wordWrap不会自作聪明随便切断不含空格的字符串
margin指内部文字距离左右两端的距离
indent指缩进
openExternalLink指,当Label的文本为超链接的时候,是否允许外部打开
textInteractionFlags,点开根据英文就能直到对应的选项是什么意思了
0x05.结尾
目前为止,我们已经可以给程序添加界面了,但是程序似乎还没有什么实际功能,只能起到一个展示的作用,下节课我们学习一下如何让程序和我们进行交互。