Qt从入门到放弃_0x02:基本控件简介

一、控件简介

我们所看到的图形化界面是由很多部分组成的,比如显示文本的文本框、退出程序的按钮等等。这些组成图形化界面的,被赋予了多种功能的组件,就是Qt的控件

二、基本控件

下面的代码演示的都是最基本的控件使用,均在main函数中进行操作。我们将下面这两句创建项目时自动生成的代码注释掉,添加上自己的代码即可。

MainWindow w;
w.show();

1.QLabel

QLabel包含在头文件<QLabel>中。QLabel用来显示一段文本,该文本只读,不能被选中也不能被用户更改。

QLabel的构造函数如下:

QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = ...)
QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = ...)

QLabel可以在构造是提供一个字符串来初始化:

QLabel      label("Hello World!");
label.show();

也可以调用setText方法来对其显示的文本进行更改:

QLabel      label;
label.setText("Hello World!");
label.show();

其中,第一种方法只能在初始化时给一个初始值,但是第二种方法可以随时更改QLabel的内容。上面无论哪一种方式,显示的结果都长这样:

值得一提的是,label还支持对html的解释。代码及效果如下:

QLabel      label;
label.setText("<html>"
              "<head></head>"
              "<body>"
              "<center>Hello World</center>"
              "</body>"
              "</html>");
label.show();

甚至还可以显示图片:

QLabel      label;
label.setText("<html>"
              "<head></head>"
              "<body>"
              "<img src=\"D:/timg.jpg\">"
              "</body>"
              "</html>");
label.show();

2.QPushButton

QPushButton包含在头文件<QPushButton>中,用来创造按钮控件。

QPushButton的构造函数如下:

QPushButton(QWidget *parent = nullptr);
QPushButton(const QString &text, QWidget *parent = nullptr);
QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr);

下面是一个最最简单的例子,在main函数中加入下面的代码:

QPushButton     button("A Button");
button.show();

运行,可以看到界面中出现了一个按钮,写着“A Button”。

但是现在这个按钮并没有附加功能,点击它并不会有任何的效果。想要赋予按钮功能,需要使用信号槽机制。

3.QTextEdit

QTextEdit包含在头文件<QTextEdit>中,用来创建一个文本编辑框。

其构造函数如下:

QTextEdit(QWidget *parent = nullptr)
QTextEdit(const QString &text, QWidget *parent = nullptr)

同样的,下面举一个简单的例子:

QTextEdit   textEditor("This is a text editor");
textEditor.append("hello world");
textEditor.show();

这里传递给构造函数的字符串最终会显示在编辑框中,而append成员函数则是向编辑框中添加另一条字符串。此外,默认情况下用户是可以在创建出来的文本编辑器中进行输入的,见图中第三行文字。如下图:

4.QSlider

QSlider包含在头文件<QSlider>中,用来创建一个滚动条。构造函数如下:

QSlider(QWidget *parent = nullptr)
QSlider(Qt::Orientation orientation, QWidget *parent = nullptr)

有必要说明一下,第二个构造函数的第一个参数代表滚动条的放置方式:站着(Qt::Vertical)和躺着(Qt::Horizontal)。默认情况下是站着。

站着太累了,咱们创建一个躺着的滚动条好了。代码和效果如下:

QSlider     slider(Qt::Horizontal);
slider.show();

5.QSpinBox

QSpinBox包含在头文件<QSpinBox>中,用来创建微调框。其构造函数如下:

QSpinBox(QWidget *parent = nullptr)

同样用一个例子说明:

QSpinBox    spinBox;
spinBox.setValue(50);
spinBox.show();

这段代码创建了一个微调框,并且使用setValue方法设置其默认数值为50(若不进行设置则默认为0),显示如下图:

三、参考

Qt基本控件及三大布局

《Qt学习之路2》:布局管理器

原文地址:https://www.cnblogs.com/SmartEggs/p/10986325.html

时间: 2025-01-14 14:43:04

Qt从入门到放弃_0x02:基本控件简介的相关文章

ADO面板上的控件简介

ADO面板上的控件简介 一. TADOConnection组件该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等.该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据集及命令组件通过设置其ConnectionString属性,可以直接连接到数据库.但是如果多个数据集使用相同的数据库连接时,则使用TADOConnection就有一定的优势,因为不必为每个数据集都单独建立数据库的连接,同时也减少了资源的消耗

Delphi7 ADO面板上的控件简介

Delphi7 ADO面板上的控件简介 一. TADO Connection组件 该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等. 该组件用于建立数据库的连接,该连接可被多个数据集所共享,但是并不是应用程序中必须的,因为ADO数据集及命令组件通过设置其Connection String属性,可以直接连接到数据库.但是如果多个数据集使用相同的数据库连接时,则使用TADO Connection就有一定的优势,因为不必为每个数据集都单独建立数据库的连

XLSReadWrite控件简介

2015-10-22  23:57:55 原帖地址:http://www.cnblogs.com/dabiao/archive/2011/07/08/2100609.html XLSReadWrite控件简介: 一个你需要的,能在Delphi和.NET下访问Excel文件的完美解决方案. 一个经典的读写Excel的控件,对于使用Excel 开发很有帮助 官方网站: http://www.axolot.com/components/index.htm   功能描述 About Feature 读写

EasyUI:datagrid控件简介

EasyUI:datagrid控件简介 1,水平滚动条属性: //显示滚动条 fitColumns:false //不显示滚动条 fitColumns:true 原文地址:https://www.cnblogs.com/lizm166/p/8467953.html

【Qt UI】仿QQ表情选择控件

表情选择控件在聊天应用中经常要用到,做起来虽然不复杂但是很繁琐,特别是有些图标需要按顺序排列.每次重做必然是很费时,所以我将聊天表情选择控件封装成一个独立的类QFaceSelectWidget,方便直接应用到自己的项目中. 先来看看效果图: 测试程序是一个对话框,里面放有一个QPushButton和一个QLabel,水平布局.点击按钮弹出"表情选择框",选择表情后"表情选择框"关闭,QLabel中显示刚才选择的表情."表情选择框"中的表情都是gi

Qt编写自定义控件23-广告轮播控件

一.前言 广告轮播这个控件做的比较早,是很早以前定制一个电信客户端时候用到的,该客户端需要在首页展示轮播预先设定好的图片,图片的路径可以自由设定,然后轮播的间隔速度可以自由控制,同时该控件还需要提供两种指示器的风格,一种是迷你型的样式,一种是数字型的样式. 本控件很早就做好了,由于当时的QPainter功力不足,还不是很熟悉QPainter,采用的是效率比较低的直接用现有控件堆积而成,比如指示器采用的QLabel,用样式表来控制对应的形状,指示器所在的底部放一个widget,采用左右布局,然后右

Qt编写自定义控件24-图片轮播控件

一.前言 上一篇文章写的广告轮播控件,采用的传统widget堆积设置样式表做的,这次必须要用到更高级的QPainter来绘制了,这个才是最高效的办法,本控件参考雨田哥的轮播控件,经过大规模的改造而成,相比于原来的广告轮播控件,本控件可以说完爆他,按在地上使劲摩擦.除了可以设置图片路径集合以外,还可以设置对应的提示信息,这个在众多的web轮播图片效果中最常见,比如新闻的标题等,可以更直观的显示当前图片,而且单击图片还可以支持跳转,指示器的位置也能设置左边+中间+右边,指示器的样式更加增加到椭圆条状

c#入门笔记(2)控件

1.控件是可以从工具栏直接拖动到窗体,具有确定功能的函数.大部分控件属于control类的派生类.通用属性name(名称),location(具体的位置),top,left(位置) 2.form窗体类:属于System.Windows.Forms命名空间(类似包)作为一种容器存在. 3.(“我是(0),年龄(1)”,name ,age):括号代表占位符,之后依次表示占位符的数据

Android入门之GridView(表格控件)

GridView是一个表格控件,可以在每个单元格中显示自定义的View或者字符串.在这里我们要实现一个图标下方有文字的效果. 1.首先我们应自定义布局文件image_text.xml.代码如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3