Qt常用控件

本文详细介绍了Qt中的控件栈容器和布局管理,并展示了不同效果。还讲解了如何在项目中添加并使用图片资源,包括添加新文件、创建image.qrc资源文件以及将图片资源路径添加到剪贴板的操作步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    控件栈容器

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
//添加槽
private slots:
    void on_change_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    //界面中的任何操作都是在这句话里面完成,代码写在这句话下面
    ui->setupUi(this);

  }

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_change_clicked()
{
    static int i = 0;
    ui -> stackedWidget ->setCurrentIndex(++i % 4);
}

                                          布局

### Qt 常用控件概述 Qt 是一个功能强大的跨平台 C++ 图形用户界面库,提供了丰富的控件用于构建复杂的用户界面。以下是常见的控件及其基本用途: #### QPushButton (按钮) `QPushButton` 是一种标准的按钮控件,通常用来触发某些事件或动作。可以通过设置文本、图标等方式来自定义其外观。 ```cpp #include <QPushButton> // 创建一个带有文字的按钮 QPushButton* button = new QPushButton("点击我"); button->setGeometry(100, 100, 80, 40); connect(button, &QPushButton::clicked, [](){ qDebug() << "按钮被点击"; }); ``` 此类控件属于 `QWidget` 的子类[^1],因此具备通用的核心属性和行为。 --- #### QLineEdit (单行输入框) `QLineEdit` 提供了一种简单的单行文本编辑器,适用于短字符串的输入场景。 ```cpp #include <QLineEdit> QLineEdit* lineEdit = new QLineEdit; lineEdit->setText("默认文本"); lineEdit->setPlaceholderText("请输入..."); QString text = lineEdit->text(); // 获取当前文本 ``` 此控件支持占位符提示以及信号槽机制来响应用户的交互操作[^2]。 --- #### QListWidget 和 QListView (列表视图) `QListWidget` 是一种便捷的列表控件,允许开发者快速创建可滚动的选择列表。而更底层的 `QListView` 则依赖于 Model/View 架构实现更加灵活的数据展示方式。 ```cpp #include <QListWidget> QListWidget* listWidget = new QListWidget; listWidget->addItem("项目一"); // 添加单项 listWidget->addItems({"项目二", "项目三"}); // 批量添加多项 QString selectedItem = listWidget->currentItem()->text(); ``` 值得注意的是,虽然两者都能完成相似的任务,但由于 `QListWidget` 已经封装好了内部使用的数据模型 (`QListWidgetItem`),所以它的使用门槛更低[^3]。 --- #### QTextEdit (多行文本编辑器) 当需要处理较长或者格式化的文档内容时可以选择使用 `QTextEdit` 组件。 ```cpp #include <QTextEdit> QTextEdit* textEdit = new QTextEdit; textEdit->append("这是第一段话。\n第二段开始了!"); textEdit->setFontPointSize(14); // 设置字体大小 bool isReadOnly = textEdit->isReadOnly(); // 查询只读状态 if (!isReadOnly){ textEdit->insertPlainText("追加新内容"); } ``` 上述代码片段展示了如何向该区域插入新的段落并调整一些基础样式参数。 --- #### QRadioButton 和 QCheckBox (选项开关) 这两种类型的组件分别代表互斥选择与独立勾选的功能需求,在问卷调查或是偏好设定页面非常常见。 ```cpp #include <QRadioButton> #include <QCheckBox> QRadioButton* radioBtnA = new QRadioButton("选项 A"); radioBtnA->setChecked(true); QCheckBox* checkBoxB = new QCheckBox("同意条款 B"); checkBoxB->stateChanged.connect([](int state){ if(state == Qt::Checked){ qDebug()<<"已接受条件"; } }); ``` 通过组合多个这样的小部件能够轻松搭建起复杂逻辑控制面板[^4]。 --- #### QLabel (标签) 作为静态信息载体之一,`QLabel` 主要负责呈现固定的图片资源或者是说明性的纯文本串。 ```cpp #include <QLabel> QLabel* labelPic = new QLabel; labelPic->setPixmap(QPixmap(":/images/sample.png")); labelPic->setScaledContents(true); // 自适应缩放图像尺寸 QLabel* labelText = new QLabel("<b>HTML<b><i>富文本</i>"); labelText->setWordWrap(true); // 启用自动换行 ``` 利用 HTML 片段还可以进一步增强视觉表现力[^5]。 --- ### 总结 以上仅列举了几种典型的 GUI 元素实例,实际上 QT 库还涵盖了更多高级别的特性比如表格管理(`QTableWidget`)、树状结构浏览(`QTreeWidget`)等等。每种工具都有各自特定的应用场合,合理选用才能达到最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值