如果要使用QT的设计器的话,那么在建立项目的时候必须勾选上 .ui文件这一项上面的钩子。
ui可以很方便的设计一个窗口项目。
下面举一个简单的例子:
运行:
如果想要通过代码修改设计器中给定的一些属性,那么需要这样的来调用接口
ui->setupUi(this);//通过ui对窗口的操作都建立在这一步的后面
ui->pushButton->setText("ui");
运行:
----------------------------------------------------------------------------------------
——开始正式的介绍ui设计器——
----------------------------------------------------------------------------------------
Button控件
Push Button:按钮类控件,之前已经学过。
Tool Button:和Push Button类似。
Radio Button:单选框。
Check Box:多选框
Command Link Button和Dialog Button Box就一起介绍了
------------------------------------------------------------------------------------------
Containers控件
Group Box:一个可以放其他控件的容器。
Scroll Area:带有滚条的区域
Tool Box:抽屉式区域
Tab Widget:标签式区域
Stacked Widget:一个可以切换为多个界面的区域
这个容器我们需要使用一个按钮来操作!
槽函数
void MainWindow::on_change_clicked()
{
static int i=0;
//很玄学,要运行一下才会有这个对象名
ui->stackwidgets->setCurrentIndex(++i%4);
}
把按钮和容器连接的操作使用特殊的方法省去了。
运行:
Frame和Widget是类似的,方便局部的布局。
MDI Area:文档分栏显示。
Dock Widget:浮动窗口。
----------------------------------------------------------------------------------------
Input Widgets
Combo Box:下拉框
Font Combo Box:字体选择框
Line Edit:文本输入框
操作代码:
//QlineEdit
QString str=ui->lineEdit->text();
qDebug()<<str;
//设置内容
ui->lineEdit->setText("1376490336");
为文本输入器设置模型
//QlineEdit
QStringList list;//字符串列表
list<<"java"<<"数据结构与算法"<<"QT"<<"web";
QCompleter *com=new QCompleter(list,this);//创建模型
com->setCaseSensitivity(Qt::CaseInsensitive);//不区分大小写
ui->lineEdit->setCompleter(com);//给文本输入器设置模型
为文本输入器设置显示格式和显示方式
//设置内容
ui->lineEdit->setText("1376490336");
//设置内容显示格式
ui->lineEdit->setTextMargins(15,0,0,0);
//设置内容显示方式
ui->lineEdit->setEchoMode(QLineEdit::Password);//密码模式
Text Edit:与Line Edit只能写一行不同,他可以写多行,还有图片
Plain Text Edit:与Text Edit相似
Spin Box:调节整形数据大小
Double Spin Box:调节浮点数大小
Time Edit:时间编辑器
Data Edit:日期编辑器
Data/Time Edit:时间日期编辑器
Horizontal Scroll Bar:水平滚动条
Vertical Scroll Bar:竖直滚动条
Horizontal Slider:水平滑块
Vertical Slider:竖直滑块
Key Sequence Edit :界面的一些快捷方式
---------------------------------------------------------------------------
Display Widgets
Label:标签。
我们着重看一下Label,在窗口上设置四个标签,储存文本,图片,动图,链接。
文本
//设置文本内容
ui->labeltext->setText("文字标签");
图片
//设置图片
ui->labelimage->setPixmap(QPixmap(":/new/prefix1/C:/Users/13764/Pictures/Saved Pictures/timg28XLAS1F.jpg"));
//使图片自动适应label大小
ui->labelimage->setScaledContents(true);
动图
//创建动画
QMovie*muv=new QMovie(":/new/prefix1/C:/Users/13764/Pictures/Saved Pictures/16608aa3138b4130b857448f811875b3.gif");
//设置动画
ui->labelgif->setMovie(muv);
//启动动画
muv->start();
ui->labelgif->setScaledContents(true);
链接
//设置html
ui->labelUrl->setText("<h1><a href=\"https://www.baidu.com\">百度一下</a></h1>");//这里涉及到html的语法,我没有学过
ui->labelUrl->setOpenExternalLinks(true);//打开外部链接
有一点要说明的是,如果要使用图片,动图一类的东西,需要创建一个Resource文件加入项目中
运行:
Text Browser:文本浏览器,目前不知道什么。
Graphics View:绘图。
Calender Widgets:日历。
LCD Number:数码管状数字。
//数码管
ui->lcdNumber->display(520);
运行:
Progress Bar:进度条
//进度条
ui->progressBar->setMinimum(0);//设置最小值
ui->progressBar->setMaximum(200);//设置最大值
ui->progressBar->setValue(100);//设置当前值,根据计算会显示为50%
运行:
Horizontal Line:水平线
Vertical Line:竖直线