当前位置:网站首页>Qt中常用的窗体
Qt中常用的窗体
2022-06-21 20:54:00 【小丑的舞台】
Qwidget
1.简介:
QWidget类是所有用户界面对象的基类。它从窗口系统接收鼠标,键盘和其他事件,并将其自身绘制在屏幕上。
同时继承:QObject 类 和 QPaintDevice类
QWidget:类是所有用户界面对象的基类。QObject:是所有Qt类的基类。提供了信号-槽的机制。QPaintDevice:可以使用QPainter绘制的对象的基类。
2.构造函数
QWidget::QWidget( QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags() );
parent:如果是 nullptr,则小部件将成为一个主窗口,否则小部件将成为 parent内的子窗口删除其父窗口时,将删除他的小部件。
f:由任何窗口标志的按位“或”组成的值。Qt::Window Flags()就是构造了一个模板类对象默认是Qt::Widget
3.成员函数
移动函数:
void move(const QPoint &) void move(int x, int y)
//设置颜色(一般和颜色填充集合使用)
void setPalette(const QPalette &)
//颜色填充
void setAutoFillBackground(bool enabled)
//设置字体
void setFont(const QFont &);
//设置鼠标追踪事件
void setMouseTracking(bool enable);
//小部件
QWidget *widget=new QWidget(nullptr,Qt::Window);
//设置窗口标题:
widget->setWindowTitle(QStringLiteral("这是以QWidget窗体"));
//widget->setToolTip(QStringLiteral("这是一个提示"));
//设置窗口的图标
widget->setWindowIcon(QIcon("F:\\qtItem\\oftenForms\\image\\11.jpg"));
//设置窗口的状态:
widget->setWindowState(Qt::WindowNoState);//正常状态
//widget->setWindowState(Qt::WindowMinimized);//宿小状态
//widget->setWindowState(Qt::WindowMaximized);//最大状态
//widget->setWindowState(Qt::WindowFullScreen);//充满整个屏幕,连最大化和最小化的按扭都没有了;
//widget->setWindowState(Qt::WindowActive);//活动窗口,不知道有什么用
//设置窗口透明读
widget->setWindowOpacity(0.7);
//隐藏窗体:
// widget->hide();
//关闭窗体
//widget->close();
//设置窗口固定大小
//widget->setFixedSize(400,400);
//设置光标
widget->setCursor(Qt::CrossCursor);
//显示窗口
widget->show();4.属性:
enabled 启用或禁用widget,默认启用。
geometry widget的位置和尺寸
3.sizePolicy 设置widget在水平和垂直方向的伸缩策略以及伸缩因子,所谓伸缩策略实际就是widget对待sizeHint的策略,
palette:调色板
值属性 意思 Fixed 认为sizeHint值为最佳,widget尺寸不能改变 Minimum 认为sizeHint值为最小,尺寸可以变大,不能变小 Maximum 认为sizeHint值为最大,尺寸可以变小,不能变大 Preferred 认为sizeHint为合适值,可以改变尺寸,但不推荐变大 Expanding 认为sizeHint为合适值,可以改变尺寸,比Preferred适合变大 MinimumExpanding 认为sizeHint为最小,尺寸可以变大,不能变小 Ignored 忽略sizeHint大小,可以改变尺寸
QFrame(带边框的窗体)
简介:
1.QFrame与QWidget的区别:
QFrame是基本控件的基类,QWidget是QFrame父类。
QFrame在QWidget的基础上提供了对窗体边框的控制。
功能作用:
主要控制一些边框样式,例如:凸起,凹下,阴影,线宽;
属性:
frameRect : QRect : 绘制框架的矩形。默认情况下是整个小部件。当小部件改变大小时,框架矩形会自动调整。
frameShadow : Shadow: 框架样式的框架阴影。
frameShape : Shape : 框架样式的框架形状 。
frameWidth : const int : 样式框架确定的宽度。例如,NoFrame 指定的样式的框架宽度始终为 0,而 Panel 指定的样式框架宽度等于 lineWidth。
lineWidth : int :框架的宽度。
用作分隔符的框架(HLine 和 VLine)的 lineWidth 由 frameWidth 指定。
midLineWidth : int : 框架中间多出一条线的宽度,它使用第三种颜色来获得特殊的3D效果。仅为凸起(raised)或凹陷(sunken)的 Box、HLine、VLine 框架绘制中线。
类型:
1、enum QFrame::Shadow:此枚举类型定义用于为框架提供 3D 效果的阴影类型。
Plain:框架和内容与周围平齐。使用调色板 QPalette::WindowText 颜色绘制(没有任何 3D 效果) Raised:框架和内容出现凸起; 使用当前颜色组的浅色和深色绘制 3D 凸起线 Sunken:框架和内容出现凹陷; 使用当前颜色组的明暗颜色绘制 3D 凹陷线 2、enum QFrame::Shape:此枚举类型定义可用框架的形状。
NoFrame:什么都不绘制 Box:在其内容周围绘制一个框 Panel:绘制一个面板,使内容显得凸起或凹陷 StyledPanel:绘制一个矩形面板,其外观取决于当前的 GUI 样式。 它可以凸起或凹陷 HLine:绘制一条水平线,不加框(用作分隔符) VLine:绘制一条垂直线,没有框(用作分隔符) WinPanel:绘制一个矩形面板,它可以像 Windows 2000 中的面板一样凸起或凹陷。指定此形状将线宽设置为 2 像素。提供 WinPanel 是为了兼容性。对于 GUI 样式独立性,建议改用 StyledPanel
应用
//第一步:创建一个QFrame对象
QFrame frame;
//frame.setStyleSheet()
//设置边框宽度
frame.setLineWidth(10);
//设置中线
frame.setMidLineWidth(5);
//设置形状
frame.setFrameShape(QFrame::Box);
//设置窗口的背景色
//frame.setStyleSheet("background-color:red");
//设置阴影
frame.setFrameShadow(QFrame::Raised);
//设置边框位置 绘制框架的矩形大小;
frame.setFrameRect(QRect(10,0,400,400));
//获取边框的宽度
qDebug()<< frame.lineWidth();
frame.show();QDialog(对话框)
简介:
继承于Qwidget,是一种容器类型的组件;
当QWidget无父组件的时候作为一个独立的窗口,有父组件的时候,将作为一个可见的部件嵌入到父组件里面。
QDialog不能作为子部件嵌入到其他容器中;
QGroupBox(组框)
QGroupBox为构建分组框提供了支持。 分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。 布局时可用作一组控件的容器,但是需要注意的是,内部必须使用布局控件(如QBoxLayout)进行布 局。
属性:
alignment: Qt::Alignment
组框标题的对齐方式。默认为 Qt::AlignLeft。
Qt::AlignLeft:左侧对齐。
Qt::AlignRight:右侧对齐。
Qt::AlignHCenter:水平居中对齐。
checkable : bool :
标题中是否有复选框。
如果选中该复选框,则启用组框的子项;否则,它们将被禁用且无法访问。
checked : bool 是否选中了复选框。
flat : bool
是否扁平化。
组框通常由顶部带有标题的周围框架组成。如果启用此属性,则大多数样式只绘制框架的顶部;否则,将绘制整个框架。
注意:在某些样式中,扁平组框和非扁平组框具有相似的表示,并且可能不像在其他样式中那样可区分。
title : QString
标题文本。
如果标题包含与符号 ('&') 后跟一个字母,则组框标题文本将具有键盘快捷键。
g->setTitle("&User information");在上面的示例中,Alt+U 将键盘焦点移动到组框。
用法
//第一步:
QHBoxLayout *box1=new QHBoxLayout(this);
QLabel *label1=new QLabel(QStringLiteral("男"));
QLabel *label2=new QLabel(QStringLiteral("女"));
QCheckBox *check1=new QCheckBox;
QCheckBox *check2=new QCheckBox;
QHBoxLayout *box2=new QHBoxLayout;
box2->addWidget(check1);
box2->addWidget(label1);
box2->addWidget(check2);
box2->addWidget(label2);
QGroupBox *group=new QGroupBox(QStringLiteral("性别"));
group->setCheckable(true);//设置复选框是否显示
group->setChecked(false);//若为true,则组框能用,否则组框为不能用状态
group->setAlignment(Qt::AlignHCenter);//设置信息的位置
group->setLayout(box2);
box1->addWidget(group);
QScrollArea(滚动区域)
简介:
QScrollArea作为容器部件来使用,提供一个可以滚动的区域窗体。 当内部控件无法全部显示时,QScrollArea可以上下或者左右滚动进行显示。 注意:使用QScrollArea时一般都是通过setWidget方法添加一个QFrame对象。
属性:
用法:
//创建一个子窗口,这个子窗口交给滚动区域
QWidget* pSubWidget = new QWidget();
//在窗口(100,100)位置显示150*150大小的滚动区域
QScrollArea* pScrollArea = new QScrollArea(this);
//pScrollArea->setFixedSize(350, 150);
//设置是否自动调整部件的大小.默认是false.
//pScrollArea->setWidgetResizable(true);
//设置对齐格式
pScrollArea->setAlignment(Qt::AlignHCenter);
pScrollArea->move(QPoint(100, 100));
//设置竖直滚动策列
pScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
//设置设置QScrollArea(滚动区域)的大小调整策略
pScrollArea-> setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents);
//给子窗口设置一个垂直排版对象,动态添加按钮进去,子窗口会自动调整大小
QVBoxLayout* pSubLayout = new QVBoxLayout(this);
pSubWidget->setLayout(pSubLayout);
for (auto i = 0; i < 10; ++i)
{
pSubLayout->addWidget(new QPushButton(QString("test%1").arg(i), this));
}
pScrollArea->setWidget(pSubWidget);QToolBox工具箱
简介:
QToolBox类提供一列带选项卡的小部件项。继承于Qframe;
工具箱是一个小部件,它一个接一个地显示一列选项卡,当前项显示在当前选项卡的下方。每个选项卡 在选项卡列中都有一个索引位置。选项卡的项是一个QWidget。
属性:
count : const int 此属性保存工具箱中包含的项的数量。
currentIndex : int 此属性保存当前项的索引
方法:
//在工具箱中添加项,可以指定项的文本内容和图标内容
int addItem(QWidget *widget, const QIcon &iconSet, const QString &text)
int addItem(QWidget *w, const QString &text)
//在工具箱中的index处插入项,可以指定项的文本内容和图标内容 int insertItem(int index, QWidget *widget, const QIcon &icon, const QString &text) int insertItem(int index, QWidget *widget, const QString &text)
//根据索引设置项是否可用 void setItemEnabled(int index, bool enabled)
//根据索引设置项的图标 void setItemIcon(int index, const QIcon &icon)
//根据索引设置项的文本 void setItemText(int index, const QString &text)
//根据索引设置项的提示内容 void setItemToolTip(int index, const QString &toolTip)
QTabWidget(标签窗体)
QTabWidget主要是用来分页显示的,每一页一个界面,众多界面公用一块区域,节省了界面大小,很 方便的为用户显示更多的信息。
常用方法
//在标签窗体末尾添加一页,并设置页的窗体,标签名以及标签图标 int addTab(QWidget *page, const QString &label) int addTab(QWidget *page, const QIcon &icon, const QString &label) //在标签窗体的index位置插入一页,并设置页的窗体,标签名以及标签图标 int insertTab(int index, QWidget *page, const QString &label) int insertTab(int index, QWidget *page, const QIcon &icon, const QString &label) //设置是否可以移动标签 void setMovable(bool movable) //设置标签的显示位置 void setTabPosition(TabPosition) //设置标签是否可用 void setTabEnabled(int index, bool enable) //设置标签是否可以关闭 void setTabsClosable(bool closeable) //设置当前标签索引或者窗体 void setCurrentIndex(int index) void setCurrentWidget(QWidget *widget)
枚举类型:QTabWidget::TabPosition
| 名称 | 值 | 说明 |
|---|---|---|
| QTabWidget::North | 0 | 北向 |
| QTabWidget::South | 1 | 南向 |
| QTabWidget::West | 2 | 西向 |
| QTabWidget::East | 3 | 东向 |
QListWidget列表窗体
QListWidget(列表窗体)是一个基于项(item)的列表窗体。其父类是QListView,是基于Model(模 型)的列表视图。 QListWidget(列表窗体)包含一系列常用的关于列表窗体的操作接口。可以满足一般列表的使用要 求。 可以通过QListWidgetItem对项进行设置。
方法列表
//在列表窗体中添加项,可以通过指定项的名称,项的对象。或者一次性添加多个项 void addItem(const QString &label) void addItem(QListWidgetItem *item) void addItems(const QStringList &labels) //插入项 void insertItem(int row, QListWidgetItem *item) void insertItem(int row, const QString &label) void insertItems(int row, const QStringList &labels) //获取row行的项指针 QListWidgetItem *item(int row) const //根据项的内容和相关规则查找列表中的项 QList<QListWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags) const //设置当前选中行或者项 void setCurrentItem(QListWidgetItem *item) void setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command) void setCurrentRow(int row) void setCurrentRow(int row, QItemSelectionModel::SelectionFlags command) //设置项在添加时是否进行排序,默认不排序,按照添加的顺序显示。设置为true时按照升序排序显示。 void setSortingEnabled(bool enable) //对所有项进行排序。默认为升序。 void sortItems(Qt::SortOrder order = Qt::AscendingOrder) //设置项进入可编辑状态, void closePersistentEditor(QListWidgetItem *item) //关闭项的可编辑状态 void openPersistentEditor(QListWidgetItem *item) //清空列表 void clear() //信号 //选中项发生变化时发送该信号 void currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) //当前行发生变化时发送该信号 void currentRowChanged(int currentRow) //当前项发生变化时发送该信号,参数为当前项的文本 void currentTextChanged(const QString ¤tText) //当item处于激活状态时发送该信号。(鼠标双击或者单击) void itemActivated(QListWidgetItem *item) //当item的内容发生变化时发送该信号 void itemChanged(QListWidgetItem *item) //当鼠标单击item时发送该信号 void itemClicked(QListWidgetItem *item) //当鼠标双击item时发送该信号 void itemDoubleClicked(QListWidgetItem *item) //当鼠标进入item时发送该信号,必须设置setMouseTracking为true void itemEntered(QListWidgetItem *item) //当鼠标离开item时发送该信号,必须设置setMouseTracking为true void itemPressed(QListWidgetItem *item) //当选中项发生变化时发送该信号 void itemSelectionChanged()
QStackedWidget堆叠窗体
堆栈窗体(QStackedWidget)内可以包含多个窗体,但只有一个窗体处于显示状态。可以通过设置索 引来设置显示的窗体内容。继承于、QFrame;
属性
count : const int currentIndex : int
函数
int addWidget(QWidget *widget): int count() const int currentIndex() const QWidget *currentWidget() const int indexOf(QWidget *widget) const int insertWidget(int index, QWidget *widget) void removeWidget(QWidget *widget) QWidget *widget(int index) const
QTableWidget(表格窗体)
QToolBar
属性
allowedAreas : Qt::ToolBarAreas 可以放置工具的区域
floatable:bool: 此属性保存工具栏是否可以作为一个独立窗口进行拖放。默认为true
floating : const bool 此属性保存工具栏是否为独立窗口。默认为true
iconSize : QSize
movable : bool 此属性保存用户是否可以在工具栏区域内移动工具栏,或在工具栏区域之间移动工具栏
orientation : Qt::Orientation 定义工具栏的方向
toolButtonStyle : Qt::ToolButtonStyle
函数
QT的标准对话框
QT提供了一些基本的对话框类型:
标准文件对话框(QFileDialog)
标准颜色对话框(QColorDialog)
标准字体对话框(QFontDialog)
标准输入对话框(QInputDialog)
标准消息对话框(QMessageBox)
边栏推荐
- Electronic bidding procurement mall system: optimize traditional procurement business and speed up enterprise digital upgrading
- 力扣刷題集結4(mysql版本)
- Uwp dispatcher usage
- The way of FPGA -- interface level standard between digital systems
- [leetcode] 8. String conversion integer (ATOI)
- Design summary of Verilog divider
- 企业微信内置应用h5开发记录-1
- Bitmap使用注意事项
- Introduction to software architecture
- STM32下载一次程序后就无法再次下载,程序无法运行。
猜你喜欢

STM32F407程序移植到STM32F429
![[deeply understand tcapulusdb technology] tmonitor module architecture](/img/7b/8c4f1549054ee8c0184495d9e8e378.png)
[deeply understand tcapulusdb technology] tmonitor module architecture

Nacos installation guide

WPF 依赖属性

Contact five heart matchmaker to take off the order

An Chaoyun was selected as one of the "top ten cloud computing solution providers" in the Asia Pacific region by cioreview in 2022

Second understanding microservice

WPF routing
Swiftui basic learning journal (XI) SQLite data operation

翻译软件Bob安装教程
随机推荐
STM32 cannot download the program again after downloading it once, and the program cannot run.
MySql踩坑记录
电脑屏幕分辨率怎么调?电脑屏幕修改分辨率SwitchResX
Precautions for bitmap use
Verilog参数例化时自动计算位宽的函数
JMter测试命令【笔记】
WPF x:Static
[deeply understand tcapulusdb technology] table management of document acceptance
实验二 栈和队列
Uwp tablet inkcanvas
The way of FPGA -- project scheme and FPGA design scheme of FPGA development process
关于lg(n!)的渐进紧确界
Technology sharing | a clustering incremental statistical SQL requirement in MySQL
《MATLAB 神经网络43个案例分析》:第9章 离散Hopfield神经网络的联想记忆——数字识别
tkinter中text文本与scroll滚动条关联
WPF tablet
流式细胞分析Flowjo 10介绍以及超详细图文安装激活教程
专业字体设计编辑Glyphs 3
Technology sharing | introduction to kubernetes pod
Electronic bidding procurement mall system: optimize traditional procurement business and speed up enterprise digital upgrading