【Qt】常用控件(QLabel,QLineEdit以及自定义控件)

📅 2026/7/28 19:09:23
【Qt】常用控件(QLabel,QLineEdit以及自定义控件)
【Qt】常用控件QLabelQLineEdit以及自定义控件1. QLabel1.1 显示文字1.2 显示图片1.3 显示动画2. QLineEdit2.1 设置/获取内容2.2 设置显示模式3.自定义控件Qt为我们应用程序界面开发提供的一系列的控件下面我们介绍两种最常用一些控件所有控件的使用方法我们都可以通过帮助文档获取。1. QLabelQLabel是我们最常用的控件之一其功能很强大我们可以用来显示文本图片和动画等。1.1 显示文字通过QLabel类的setText函数设置显示的内容:voidsetText(constQString)可以显示普通文本字符串QLable*labelnewQLable;label-setText(Hello, World!);可以显示HTML格式的字符串比如显示一个链接:QLabel*labelnewQLabel(this);label-setText(Hello, World);label-setText(h1a href\https://www.baidu.com\百度一下/a/h1);label-setOpenExternalLinks(true);其中setOpenExternalLinks()函数是用来设置用户点击链接之后是否自动打开链接如果参数指定为true则会自动打开。1.2 显示图片可以使用QLabel的成员函数setPixmap设置图片voidsetPixmap(constQPixmap)首先定义QPixmap对象QPixmap pixmap;然后加载图片pixmap.load(:/Image/boat.jpg);最后将图片设置到QLabel中QLabel*labelnewQLabel;label.setPixmap(pixmap);1.3 显示动画可以使用QLabel 的成员函数setMovie加载动画可以播放gif格式的文件voidsetMovie(QMovie*movie)首先定义QMovied对象并初始化:QMovie*movienewQMovie(:/Mario.gif);播放加载的动画movie-start();将动画设置到QLabel中QLabel*labelnewQLabel label-setMovie(movie);2. QLineEditQt提供的单行文本编辑框。2.1 设置/获取内容获取编辑框内容使用text函数声明如下QStringtext()const设置编辑框内容voidsetText(constQString)2.2 设置显示模式使用QLineEdit类的setEchoMode () 函数设置文本的显示模式,函数声明:voidsetEchoMode(EchoMode mode)EchoMode是一个枚举类型,一共定义了四种显示模式:QLineEdit::Normal 模式显示方式按照输入的内容显示。 QLineEdit::NoEcho 不显示任何内容此模式下无法看到用户的输入。 QLineEdit::Password 密码模式输入的字符会根据平台转换为特殊字符。 QLineEdit::PasswordEchoOnEdit 编辑时显示字符否则显示字符作为密码。另外我们再使用QLineEdit显示文本的时候希望在左侧留出一段空白的区域那么就可以使用QLineEdit给我们提供的setTextMargins函数voidsetTextMargins(intleft,inttop,intright,intbottom)用此函数可以指定显示的文本与输入框上下左右边界的间隔的像素数。Qt中控件的使用方法可参考Qt提供的帮助文档。3.自定义控件在搭建Qt窗口界面的时候在一个项目中很多窗口或者是窗口中的某个模块会被经常性的重复使用。一般遇到这种情况我们都会将这个窗口或者模块拿出来做成一个独立的窗口类以备以后重复使用。在使用Qt的ui文件搭建界面的时候工具栏栏中只为我们提供了标准的窗口控件如果我们想使用自定义控件怎么办例如我们从QWidget派生出一个类SmallWidget实现了一个自定窗口// smallwidget.hclassSmallWidget:publicQWidget{Q_OBJECTpublic:explicitSmallWidget(QWidget*parent0);signals:publicslots:private:QSpinBox*spin;QSlider*slider;};// smallwidget.cppSmallWidget::SmallWidget(QWidget*parent):QWidget(parent){spinnewQSpinBox(this);slidernewQSlider(Qt::Horizontal,this);// 创建布局对象QHBoxLayout*layoutnewQHBoxLayout;// 将控件添加到布局中layout-addWidget(spin);layout-addWidget(slider);// 将布局设置到窗口中setLayout(layout);// 添加消息响应//QSpinBox移动 Slider跟着移动connect(spin,static_castvoid(QSpinBox::*)(int)(QSpinBox::valueChanged),slider,QSlider::setValue);//Slider移动 SpinBox跟着移动connect(slider,QSlider::valueChanged,spin,QSpinBox::setValue);}那么这个SmallWidget可以作为独立的窗口显示,也可以作为一个控件来使用打开Qt的.ui文件,因为SmallWidget是派生自Qwidget类,所以需要在ui文件中先放入一个QWidget控件, 然后再上边鼠标右键弹出提升窗口部件对话框添加要提升的类的名字,然后选择 添加添加之后,类名会显示到上边的列表框中,然后单击提升按钮,完成操作.我们可以看到, 这个窗口对应的类从原来的QWidget变成了SmallWidget再次运行程序,这个widget_3中就能显示出我们自定义的窗口了.