Qt的常用控件

本文详细介绍了Qt中的常用图形控件,包括QWidget与QFrame的区别,QMenu与QMenuBar、QToolBar、QStatusBar的使用,核心控件如QDockWidget、QDialog、QMessageBox和QFileDialog的功能,以及QLabel、QLineEdit、QScrollArea、QCheckBox和QTableWidget的定制技巧,特别是对资源文件的管理和控件样式调整。
摘要由CSDN通过智能技术生成

QWidget与QFrame

  • QWidget所有图形控件的基类
  • QFrame与QWidget的区别QFrame是基本控件的基类, QWidget是QFrame的基类. 因此QFrame支持的方法更多一些.

QMenu与QMenuBar

  • 头文件
#include <QMenuBar>//菜单栏
#include <QMenu>//菜单
#include <QAction>//动作
  • 构造代码
//添加菜单栏
QMenuBar *mBar = menuBar();
//添加菜单
QMenu *pFile = mBar->addMenu("文件");
//添加菜单项, 添加动作
QAction *pNew = pFile->addAction("新建");
//连接到对应槽函数
connect(pNew, &QAction::triggered, [](){});
//添加分割线
pFile->addSeparator();
//创建一个菜单文本为“保存(&S)”并且Ctrl+S为键盘快捷键的“文件保存”操作。
fileSaveAction = new QAction( "Save File", QPixmap( filesave),"&Save", CTRL+Key_S, this, "save" );
//连接到对应槽函数
connect( fileSaveAction, SIGNAL( activated() ) , this, SLOT( save() ) );

QToolBar

  • 头文件
#include <QToolBar>
#include <QPushButton>
  • 构造代码
//添加工具栏
QToolBar *toolBar = addToolBar("toolBar");
//把上面菜单栏定义的指针直接拿过来就添加到工具栏了.
toolBar->addAction(pNew);
//定义其他文字或图片工具栏按钮
QPushButton *b = new QPushButton(this);
b->setText("^_^");
//按下工具栏按钮, 笑脸变成123
connect(b, &QPushButton::clicked, [](){b->setText("123");});

QStatusBar

  • 头文件
#include <QStatusBar>
#include <QLabel>//显示控件
  • 构造代码
QStatusBar *sBar = statusBar();
QLabel *label = new QLabel(this);//新建标签
label -> setText("hello");//设置标签显示内容
sBar -> addWidget(label);//将标签添加至状态栏

核心控件(工作区控件)

  • 代码
//将QTextEdit设置为核心控件
this->setCentralWidget(new QTextEdit);

QDockWidget

  • 头文件
#include <QDockWidget>
  • 创建代码
//创建浮动窗口
QDockWidget *dock = new QDockWidget(this);
//将浮动窗口显示在窗口右边
addDockWidget(Qt::RightDockWidgetArea, dock);
//创建一个编辑框
QTextEdit *textEdit = new QTextEdit(this);
//将编辑框放到浮动窗口里
dock->setWidget(textEdit);

QDialog

  • 对话框如果申请了堆区内存, 关闭时是不进行释放的, 只有程序结束才释放. 可通过以下属性设置对话框关闭时即释放内存
QDialog *p = new QDialog;
p->setAttribute(Qt::WA_DeleteOnClose);

QMessageBox

  • 头文件
#include <QMessageBox>
  • 关于
//参数:指定父窗口, 标题, 内容
QMessageBox::about(this, "about", "关于qt");
  • 问题
//参数:指定父窗口, 标题, 问题, 返回选择结果
int ret = QMessageBox::question(this, "question", "是否关闭?");
switch(ret)
{
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值