QT踩坑第四天(基本控件二)

一、QT的Ui设计框架
1.1UI文件到底做了什么?

ui‐>setupUi(this);

1.2从Qt设计器中窥视Qt的继承关系
在这里插入图片描述
1.3添加progressBar到stateBar
观察QtCreator发现状态栏中有个进度条
showMessage 状态显示文字

ui‐>statusBar‐>showMessage("message", 2000);
 ui‐>statusBar‐>showMessage("message2");

//addPermanentWidget状态栏条件widget
QProgressBar *pStateProgressBar=new QProgressBar(this);
ui‐>statusBar‐>addPermanentWidget(pStateProgressBar);
pStateProgressBar‐>setValue(55);
 pStateProgressBar‐>setAlignment(Qt::AlignCenter);

二、Containers
2.1groupBox
QGroupBox为构建分组提供了支持,通常包含一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。
在这里插入图片描述
在这里插入图片描述2.2scrollArea
QScrollArea提供了一个滚动视图到另外一个部件,滚动区域用于显示一个画面中的子部件内容。如果部件超过画面大小,视图可以提供滚动条,这样就都可以看到部件的整个区域。
以notepad为例
在这里插入图片描述
UI属性设置
在这里插入图片描述
添加一个带图片的Label

QLabel *pImageLabel=new QLabel(this);
  pImageLable‐>setPixmap(QPixmap(":/pic/image/png/poster.png"));
  ui‐>scrollArea‐>setWidget(pImageLable);

在这里插入图片描述
2.3toolBox
QToolBox类提供了一个选项卡的条目。QToolBox可以在一个tab列上显示多个Item,并且当前的item显示在当前的tab下面。每个tab都在tab列中有一个索引位置。tab的
item是一个QWidget
在这里插入图片描述
QQ 联系人就是toolBox.
ui属性
在这里插入图片描述
在这里插入图片描述
添加Item
在这里插入图片描述
2.4tabWidget
QTabWidget类提供了一系列的Tab选项卡的切换,每个选项卡下有自己的控件,原理同toolBox一样
在这里插入图片描述
WPS上方一排就是TabWidget
ui属性
在这里插入图片描述
2.5stackedWidget
QStackedWidget理解为层叠窗口(堆栈窗口),提供了多页面切换的布局,每个选项卡下都有自己的控件, QStackedWidget类提供了多页面切换的布局,一次只能看到一个 界面。
还是以WPS为例:
在这里插入图片描述
还是以QtCreate为例
在这里插入图片描述
在这里插入图片描述
使用代码实现页面的切换:

void MainWindow::on_pushButton_page1_clicked()
{
ui‐>stackedWidget‐>setCurrentIndex(0);
}
void MainWindow::on_pushButton_page2_clicked()
{
ui‐>stackedWidget‐>setCurrentIndex(1);
}
 
void MainWindow::on_pushButton_page3_clicked()
{
ui‐>stackedWidget‐>setCurrentIndex(2);
}


2.6 qFrame
QFrame类是带有边框的部件的基类。它的子类有我们最为常见的标签QLabel,另外还有QLCDNumber、QSplitter、QStackedWidget、QToolBox和QAbstractScrollArea类。 带边框部件最主要的特点就是可以有一个明显的边界框架。QFrame类的主要功能也 就是用来实现不同的边框效果,这主要是由边框形状(Shape)和边框阴影(Shadow)组合来形成的。
在这里插入图片描述
2.7 qWidget
QWidget类是所有用户界面对象的基类,被称为基础窗口部件,它可以作为其他部件
的容器。QWidget继承自QObject类和QPaintDevice类,其中QObject类是所有支持Qt 对象模型(Qt Object Model)的Qt对象的的基类,QPaintDevice类是所有可以绘制的 对象的基类。
在这里插入图片描述
2.8 mdiArea
QMdiArea一般使用于主窗口中,用于容纳多个子窗口:
在这里插入图片描述
添加子窗口
在这里插入图片描述
2.9DockWidget
QDockWidget类;理解为悬浮(停靠)窗口,提供了一个特殊的窗口部件,它可以是被
锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。
在这里插入图片描述
只能使用Minwindow类才有
在这里插入图片描述
可以放在四个区域 官方有个很好的Demo

在这里插入图片描述
在这里插入图片描述
2.10 axWidget
Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中
使用ActiveX控件,并且也开发基于Qt的ActiveX控件。 QAxContainer不包含在QtCore里面,所以要使用QAxContainer的话还必须要在.pro文 件中添加 CONFIG+=qaxcontainer不能跨平台,谨慎使用!
3、Item Widget
3.1 ListWidget
QListWidget类列表框控件用来加载并显示多个列表项。QListWidgetItem类就是列表
项类。
在这里插入图片描述
UI属性 UI添加Item方法:
双击可以进入编辑item界面
在这里插入图片描述
可以单独控制某一个Item属性
在这里插入图片描述
重点属性:能不能被编辑 flags­>Editable
代码添加Item方法:

 ui‐>listWidget‐>addItem("Item_1");
for(int i = 0; i < 9; i ++)
{
ui‐>listWidget‐>addItem(QString::number(i) + " item
here");
}

四、标准对话框
4.1 标准消息对话框
标准警告对话框

void Widget::on_pushButtonCirticalMessage_clicked() {
QMessageBox::StandardButton reply;
reply = QMessageBox::critical(this, QString::fromLocal8Bit("标准警告对话框"),
QString::fromLocal8Bit("这里填写需要警告的内容"),                            QMessageBox::Abort |
QMessageBox::Retry | QMessageBox::Ignore);
 //使用reply 接住用户的选择
    if (reply == QMessageBox::Abort)
    ui‐>lineEditCritical‐>setText(tr("Abort"));
    else if (reply == QMessageBox::Retry)
    ui‐>lineEditCritical‐>setText(tr("Retry"));
    else
    ui‐>lineEditCritical‐>setText(tr("Ignore"));  }

解决上面的 ico更改 文字更改
在这里插入图片描述

QMessageBox msgBox;
         msgBox.setText(QString::fromLocal8Bit("该文档已经被修改"));
msgBox.setInformativeText(QString::fromLocal8Bit("是否需要保 存?"));
       msgBox.setStandardButtons(QMessageBox::Save
                                              | QMessageBox::Discard
                                              | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save); 
msgBox.setButtonText (QMessageBox::Save, QString::fromLocal8Bit("保 存"));
msgBox.setButtonText (QMessageBox::Discard, QString::fromLocal8Bit("丢 弃"));
msgBox.setButtonText (QMessageBox::Cancel, QString::fromLocal8Bit("取 消"));
int ret = msgBox.exec();
switch (ret) {
case QMessageBox::Save:
ui‐>lineEditCustom‐>setText(QString::fromLocal8Bit("保 存"));
break;
case QMessageBox::Discard:
ui‐>lineEditCustom‐>setText(QString::fromLocal8Bit("丢 弃"));
break;
case QMessageBox::Cancel: ui‐>lineEditCustom‐>setText(QString::fromLocal8Bit("取
消"));
break;
}

标准对话框QFileDialog 标准颜色对话框 QColorDialog 标准字体对话框QFontDialog 标准输入对话框 QInputDialog

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值