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的内容。上面无论哪一种方式,显示的结果都长这样:

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

 

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

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

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

 

甚至还可以显示图片:

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

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

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”。

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

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

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成员函数则是向编辑框中添加另一条字符串。此外,默认情况下用户是可以在创建出来的文本编辑器中进行输入的,见图中第三行文字。如下图:

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

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();

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

 

5.QSpinBox

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

QSpinBox(QWidget *parent = nullptr)

同样用一个例子说明:

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

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

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

 

三、参考

Qt基本控件及三大布局

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

上一篇:python – QWidget上的QPixmap上的绘图点(pyqt5)


下一篇:c – 在调整大小期间保持子类QWidget的宽高比