Layouts 布局控件的使用
Spacer 控件的使用
button 控件的使用
pushbutton 的使用
setIcon(const QIcon &) //设置按钮的小图标
setIconSize(const QSize &) //设置按钮的小图标大小
setEnabled(bool) //设置按钮是否能点击
按钮的信号:
void clicked(bool checked = false) 单击
void pressed() 按下
void released() 松开
void toggled(bool checked) 状态切换
QToolButton 的使用
QToolButton
============
QToolButton
//设置工具按钮的菜单
void setMenu(QMenu *menu)
======================
QMenu 类的使用
QMenu(const QString &title, QWidget *parent = nullptr)
QAction *addAction(const QString &text) //添加菜单
QAction *addAction(const QIcon &icon, const QString &text)
==============
//clicked
//显示菜单
ui->toolButton->showMenu();
//选择的菜单信号
void triggered(QAction *action)
例子:
//设置菜单
ui->toolButton->setText("菜单栏");
QMenu *m = new QMenu("我的菜单",ui->toolButton);
//往菜单中添加内容
m->addAction("辣椒");
m->addAction("鸡蛋");
m->addAction("番薯");
ui->toolButton->setMenu(m);
item widget 视图的使用
listWidget 的使用
QListWidget Class
Header:
#include <QListWidget>
qmake:
QT += widgets
//添加列表项信息
void addItem(const QString &label)
void addItem(QListWidgetItem *item)
void addItems(const QStringList &labels)
//在第几行插入
void insertItem(int row, const QString &label)
//取第几行的信息
QListWidgetItem *item(int row) const
//去除第几行
QListWidgetItem *takeItem(int row)
选择信号:
void currentRowChanged(int currentRow) //选择第几行信号
void itemClicked(QListWidgetItem *item) //点击信号
void itemDoubleClicked(QListWidgetItem *item)//双击信号
-------------------------------------------------------------
QListWidgetItem 类的使用:
QListWidgetItem(const QString &text);
QListWidgetItem(const QIcon &icon, const QString &text);
treeWidget 的使用
1.添加列信息
2.添加项目信息
获取项目中的信息
//双击信号
void itemDoubleClicked(QTreeWidgetItem *item, int column)
//取出用户选择的数据
QString msg = item->text(column); //根据行号取出数据
qDebug() << column;
tableWidget 的使用
1.添加列的信息
2.添加行的信息
设置和获取表格中的信息
//设置第几行第几列的 信息
void setItem(int row, int column, QTableWidgetItem *item)
QTableWidgetItem 类的构造函数:
QTableWidgetItem(const QString &text);
例子: 设置第0行第0列的学生信息
setItem(0,0,new QTableWidgetItem("小明"));
//设置第0 行 第1列的数据信息
ui->tableWidget->setItem(0,1,new QTableWidgetItem("178"));
//获取用户选择的内容
//信号
void cellDoubleClicked(int row, int column) //取出用户点击的行与列
void itemDoubleClicked(QTableWidgetItem *item) //取出点击的item
contain box 的使用
toolBox 的使用
tabWidget 的使用
MDI area的使用
在 Qt Designer 中,QMdiArea
(Multiple Document Interface Area,多文档界面区域)是一个用于实现多文档界面(MDI)的部件。MDI 允许在一个主窗口中同时显示多个子窗口,每个子窗口可以独立地进行操作,但共享相同的菜单栏、工具栏和其他资源。
QMdiArea
的主要用途包括:
-
文档管理:在一个应用程序中管理多个打开的文档,每个文档都有自己的子窗口。这对于文字处理器、图像编辑器等应用程序特别有用,因为用户可以同时查看和编辑多个文件。
-
空间组织:
QMdiArea
提供了一种组织界面的方式,允许用户通过堆叠或平铺子窗口来管理屏幕空间。 -
资源共享:所有的子窗口可以共享相同的菜单、工具栏和其他界面元素,这有助于减少应用程序的资源消耗和提高用户体验的一致性。
-
状态同步:在 MDI 界面中,可以更容易地实现状态同步,比如当一个子窗口被选中时,主窗口的菜单和工具栏可以反映当前活动文档的状态。
-
灵活性:用户可以自由地移动、缩放和组织子窗口,甚至可以将子窗口从
QMdiArea
中分离出来成为独立的浮动窗口,也可以将其重新拖回 MDI 区域。
int i=1;
void MainWindow::on_pushButton_clicked()
{
// 创建一个新的QMdiSubWindow
QMdiSubWindow *subWindow = new QMdiSubWindow(ui->mdiArea);
// 创建一个QWidget,用于作为QMdiSubWindow的内容
QWidget *widget = new QWidget(subWindow);
widget->setWindowTitle("窗口"+QString::number(i++));
QVBoxLayout *layout = new QVBoxLayout(widget);
QTextEdit *textEdit = new QTextEdit(widget);
layout->addWidget(textEdit);
// 设置QMdiSubWindow的Widget
subWindow->setWidget(widget);
// 将QMdiSubWindow添加到QMdiArea中
ui->mdiArea->addSubWindow(subWindow);
// 显示子窗口
subWindow->show();
}
dock widget的使用
在Qt Designer中,QDockWidget
是一种特殊的容器控件,用于创建可以在主窗口(QMainWindow
)内停靠和浮动的子窗口。这些停靠窗口通常用于显示辅助信息、工具条、属性面板等,可以被用户拖动并固定在主窗口的四周或独立悬浮在桌面上
QAxwidget的使用
QAxWidget
类是 Qt 中用于嵌入 ActiveX 控件的一个控件。它继承自 QWidget
,并且提供了与 COM (Component Object Model) 对象交互的能力。QAxWidget
主要用于在 Qt 应用程序中集成非 Qt 的组件,比如 Microsoft Office 组件、Internet Explorer 或者其他任何提供 ActiveX 接口的软件。
使用场景:
-
嵌入 Internet Explorer 控件来显示网页。
-
使用 Microsoft Office 的 ActiveX 控件(如 Word 或 Excel)来编辑文档。
-
集成其他非 Qt 开发的控件或组件。
实现:
#include <QAxWidget>
QAxWidget *ieWidget = new QAxWidget("InternetExplorer.Application", this);
// 如果你在Qt Designer中没有设置control属性,你可以在这里设置:
ieWidget->setControl(QString("InternetExplorer.Application"));
// 设置IE控件的大小和位置
ieWidget->resize(800, 600);
ieWidget->move(100, 100);
// 显示IE控件
ieWidget->show();
// 导航到网页
ieWidget->setProperty("Visible", true);
ieWidget->dynamicCall("Navigate(const QString&)", "http://www.baidu.com");