QT常用功能总结(一)

1.获取当前系统时间

#include <QDebug>
#include <QDataTime> //当前系统时间的头函数
#include <QTimes>
int main(int argc, char *argv[])
{
    ...
    QDateTime time = QDateTime::currentDateTime();    //获取当前系统时间
    QString str = time.toString("yyyy-MM-dd-hh-mm-ss"); //输出:2019-03-20-09-45-33
    QString cur_time_date = current_date.toString("yyyy年MM月dd日"); //输出:2019年03月20日
    QTime current_time =QTime::currentTime();
    QString cur_time = current_time.toString("hh::mm::ss"); //输出:09::45::33
    ...
}

2.QString 转化为char*

①QString先转换为QByteArray

②QByteArray转换为char*

QString name = "TJC";
QByteArray ba = name.toLatin1();  //转换为QByteArray
char* temp = ba.data();           //转换为char*

3.获取硬盘总空间和剩余空间

#include <sys/vfs.h>

bool get_hard_disk_status()
{
    struct statfs diskInfo;
    statfs(
<think>嗯,用户想了解Qt框架中的常用控件及其用法,还提到了总结文档和教程。首先,我需要整理Qt中常见的控件,比如按钮、输入框、容器等。根据提供的引用,用户可能已经看过些资料,但需要更系统的总结。 先看看引用里的内容。引用[1]和[3]提到了QPushButton、QLineEdit、QComboBox等控件,还有信号槽的用法。引用[2]提到了焦点策略。可能需要将这些控件分类,比如输入类、按钮类、容器类等,这样结构更清晰。 用户可能需要每个控件的简要说明和示例代码。比如QPushButton的创建和点击事件处理,如何在Qt Creator中使用设计器布局。此外,信号与槽的连接是关键,特别是lambda表达式的使用,这在引用[3]的代码示例中出现过。 还要考虑用户可能遇到的常见问题,比如控件的焦点设置、布局管理,或者如何获取输入内容。例如,QLineEdit的text()方法,QSpinBox的值获取等。 另外,用户可能想知道相关教程或文档资源,需要推荐官方文档和书籍。比如《Qt Creator快速入门》和《C++ GUI Programming with Qt 4》,以及Qt Assistant工具的使用。 在组织内容时,先分大类,再逐个介绍控件,每个控件给出代码示例和注意事项。比如QRadioButton和QCheckBox的区别,QComboBox的添加项方法,布局管理中的QHBoxLayout和QVBoxLayout的应用。 最后,生成相关问题时要覆盖控件选择、布局管理、信号槽连接、焦点策略和输入验证等方面,帮助用户进步深入学习。</think>### Qt常用控件总结及使用指南 #### 、核心控件分类 1. **按钮类控件** - $QPushButton$: 标准按钮控件,支持点击事件绑定 - $QRadioButton$: 单选按钮(需配合QButtonGroup使用) - $QCheckBox$: 复选框支持多选 ```cpp connect(ui->pushButton, &QPushButton::clicked, [=](){ qDebug() << "按钮被点击"; }); ``` 2. **输入类控件** - $QLineEdit$: 单行文本输入框 - $QTextEdit$: 富文本编辑器 - $QSpinBox$: 数字输入框(整数) ```cpp QString text = ui->lineEdit->text(); // 获取输入内容 ``` 3. **容器类控件** - $QGroupBox$: 分组容器 - $QTabWidget$: 选项卡容器 - $QScrollArea$: 滚动区域容器 4. **显示类控件** - $QLabel$: 文本/图片显示 - $QProgressBar$: 进度条 - $QLCDNumber$: 数字显示屏 #### 二、关键功能实现 1. **信号与槽机制** ```cpp // Lambda表达式连接示例 connect(ui->checkBox, &QCheckBox::stateChanged, [=](int state){ qDebug() << "复选框状态:" << state; }); ``` 2. **布局管理** ```cpp QHBoxLayout *hLayout = new QHBoxLayout; hLayout->addWidget(ui->pushButton); hLayout->addWidget(ui->lineEdit); ``` 3. **焦点控制** ```cpp ui->lineEdit->setFocusPolicy(Qt::StrongFocus); // 设置焦点策略[^2] ``` #### 三、推荐学习资源 1. 官方文档:Qt Widgets模块文档 2. 书籍推荐: - 《Qt Creator快速入门》 - 《C++ GUI Programming with Qt 4》 3. 开发工具: - 使用Qt Assistant查看控件类说明 - 通过Qt Designer进行可视化布局 #### 四、最佳实践建议 1. 使用UI文件分离界面与逻辑 2. 优先使用布局管理器而非绝对坐标 3. 对输入控件添加验证逻辑 ```cpp QValidator *validator = new QIntValidator(0, 100, this); ui->lineEdit->setValidator(validator); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值