{"id":"58954540","type":"page","status":"current","title":"8 常用控件","version":{"by":{"type":"known","username":"ethanliu","userKey":"2c90931b6cfb654f016d5c69becc0001","profilePicture":{"path":"/images/icons/profilepics/default.svg","width":48,"height":48,"isDefault":true},"displayName":"刘浩","_links":{"self":"https://wiki.suncaper.net/rest/api/user?key=2c90931b6cfb654f016d5c69becc0001"},"_expandable":{"status":""}},"when":"2022-07-09T01:51:25.000Z","message":"","number":1,"minorEdit":false,"hidden":false,"_links":{"self":"https://wiki.suncaper.net/rest/experimental/content/58954540/version/1"},"_expandable":{"content":"/rest/api/content/58954540"}},"body":{"storage":{"value":"

Qt为我们应用程序界面开发提供的一系列的控件,下面我们介绍两种最常用一些控件,所有控件的使用方法我们都可以通过帮助文档获取。

_Toc466556789_Toc4718420218.1 QLabel控件使用

QLabel是我们最常用的控件之一,其功能很强大,我们可以用来显示文本,图片和动画等。

_Toc471842022显示文字 (普通文本、html)

通过QLabel类的setText函数设置显示的内容:

cpp


cppsetText(\"Hello, World!\");]]>


比如显示一个链接:

cppsetText(\"Hello, World\");\nlabel ->setText(\"

百度一下

\");\nlabel ->setOpenExternalLinks(true);]]>


其中setOpenExternalLinks()函数是用来设置用户点击链接之后是否自动打开链接,如果参数指定为true则会自动打开。

_Toc471842023显示图片

可以使用QLabel的成员函数setPixmap设置图片

cpp


首先定义QPixmap对象

cpp


然后加载图片

cpp


最后将图片设置到QLabel中

cpp


_Toc471842024显示动画

可以使用QLabel 的成员函数setMovie加载动画,可以播放gif格式的文件

cpp


首先定义QMovied对象,并初始化:

cpp


播放加载的动画:

cppstart();]]>


将动画设置到QLabel中:

cppsetMovie(movie);]]>


_Toc466556790_Toc4718420258.2 QLineEdit

Qt提供的单行文本编辑框。

设置/获取内容

cpp


cpp


设置显示模式

使用QLineEdit类的setEchoMode () 函数设置文本的显示模式,函数声明:

cpp


EchoMode是一个枚举类型,一共定义了四种显示模式:

另外,我们再使用QLineEdit显示文本的时候,希望在左侧留出一段空白的区域,那么,就可以使用QLineEdit给我们提供的setTextMargins函数:

cpp


用此函数可以指定显示的文本与输入框上下左右边界的间隔的像素数。

_Toc466556791_Toc4718420268.3 其他控件

Qt中控件的使用方法可参考Qt提供的帮助文档。

_Toc466556794_Toc4718420278.4 自定义控件

在搭建Qt窗口界面的时候,在一个项目中很多窗口,或者是窗口中的某个模块会被经常性的重复使用。一般遇到这种情况我们都会将这个窗口或者模块拿出来做成一个独立的窗口类,以备以后重复使用。
在使用Qt的ui文件搭建界面的时候,工具栏栏中只为我们提供了标准的窗口控件,如果我们想使用自定义控件怎么办?
例如:我们从QWidget派生出一个类SmallWidget,实现了一个自定窗口,

cppaddWidget(spin);\nlayout->addWidget(slider);\n// 将布局设置到窗口中\nsetLayout(layout);\n// 添加消息响应\nconnect(spin,\nstatic_cast(&QSpinBox::valueChanged),\nslider, &QSlider::setValue);\nconnect(slider, &QSlider::valueChanged,\nspin, &QSpinBox::setValue);\n}]]>



那么这个SmallWidget可以作为独立的窗口显示,也可以作为一个控件来使用:
打开Qt的.ui文件,因为SmallWidget是派生自Qwidget类,所以需要在ui文件中先放入一个QWidget控件, 然后再上边鼠标右键

弹出提升窗口部件对话框

添加要提升的类的名字,然后选择 添加

添加之后,类名会显示到上边的列表框中,然后单击提升按钮,完成操作.
我们可以看到, 这个窗口对应的类从原来的QWidget变成了SmallWidget

再次运行程序,这个widget_3中就能显示出我们自定义的窗口了.

","representation":"storage","_expandable":{"content":"/rest/api/content/58954540"}},"_expandable":{"editor":"","view":"","export_view":"","styled_view":"","anonymous_export_view":""}},"extensions":{"position":47},"_links":{"webui":"/pages/viewpage.action?pageId=58954540","edit":"/pages/resumedraft.action?draftId=58954540","tinyui":"/x/LJODAw","collection":"/rest/api/content","base":"https://wiki.suncaper.net","context":"","self":"https://wiki.suncaper.net/rest/api/content/58954540"},"_expandable":{"container":"/rest/api/space/2CT","metadata":"","operations":"","children":"/rest/api/content/58954540/child","restrictions":"/rest/api/content/58954540/restriction/byOperation","history":"/rest/api/content/58954540/history","ancestors":"","descendants":"/rest/api/content/58954540/descendant","space":"/rest/api/space/2CT"}}