QT开发(三) 常用控件介绍

本文详细讲解了Qt中的关键控件,如按钮、列表、树形视图、表格、容器以及输入组件,展示了如何在Qt中创建和测试这些控件,以构建丰富且交互式的用户界面。
摘要由CSDN通过智能技术生成

1、概念

在Qt中,控件(Widget)是用来构建用户界面的可视化元素,用于展示信息、接收用户输入、触发事件等。控件可以是按钮、文本框、标签、列表框等各种元素,用于创建丰富的用户界面。

2、常用控件

2.1 Buttons

按钮控件是常用的用户交互控件之一,用于触发特定操作或事件。

  • 普通按钮(QPushButton):用于触发一般的操作或事件,如提交表单、打开文件等。
  • 复选框按钮(QCheckBox):用于表示两种状态之间的选择,如开关按钮、多选等。
  • 单选按钮(QRadioButton):用于从多个互斥选项中选择一个,如性别选择、模式切换等
  • 工具按钮(QToolButton):用于显示图标或文本,并触发相关操作,如工具栏按钮、下拉菜单按钮等。

设计如下界面:

同时添加如下测试代码:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 选中常用按键后打印信息
    connect(ui->PuBtn_1, &QPushButton::clicked, [=](){
        qDebug() << "选中常用按键";
    });

    // 默认选中未婚
    ui->radioButton->setChecked(true);

    // 打印多选按钮状态
    connect(ui->checkBox, &QPushButton::clicked, [=](int state){
        qDebug() << "多选按钮状态:" << state;
    });
}

按键测试效果如下:

2.2 List Widget

List Widget用于显示单列的数据列表,每个项都是一个单独的条目。

设计如下界面:

同时添加如下测试代码:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 显示校规校纪
    QStringList list;
    list << "校规校纪" << "不许打架" << "不许逃课" << "尽量不要同时和好几个人谈恋爱";
    ui->listWidget->addItems(list);

    // 设置文本居中显示
    for(int i = 0; i < ui->listWidget->count(); i++)
    {
        QListWidgetItem *item = ui->listWidget->item(i);
        item->setTextAlignment(Qt::AlignCenter);
    }
}

测试效果如下:

2.3 Tree Widget

Tree Widget用于显示具有层次结构的数据,每个项可以包含子项。适用于显示具有父子关系的数据,如文件系统结构、组织架构等。

设计如下界面:

同时添加如下测试代码:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 设置表头
    ui->treeWidget->setHeaderLabels(QStringList() << "科目" << "科目介绍");

    QStringList listroot, listchild;
    listroot << "科目1" << "科目2" << "科目3" << "科目4";
    listchild << "纯理论,太简单了" << "一顿操作猛如虎,一看通过两成五" << "过了获得一次尬舞的机会" << "跟教练有仇报仇去吧";

    for (int i = 0; i < listroot.size(); ++i)
    {
        // 添加根节点
        QTreeWidgetItem *rootItem = new QTreeWidgetItem(ui->treeWidget);
        rootItem->setText(0, listroot[i]);

        // 添加对应的子节点
        QTreeWidgetItem *childItem = new QTreeWidgetItem(rootItem);
        childItem->setText(1, listchild[i]);
    }
}

测试效果如下:

2.4 Table Widget

Table Widget用于以表格形式显示数据,包含多行和多列。适用于显示二维数据,如表格数据、数据集等。

设计如下界面:

同时添加如下测试代码:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 设置列数
    ui->tableWidget->setColumnCount(3);

    // 设置行数
    ui->tableWidget->setRowCount(3);

    // 设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "学号" << "成绩");

    // 设置内容
    QStringList nameList, numberList;
    nameList << "张三爷" << "李四爷" << "王五弟";
    numberList << "001" << "002" << "003";
    int score[3] = {96 ,97 ,99};
    for(int i = 0; i < 3; ++i)
    {
        for(int j = 0; j < 3; ++j)
        {
            if(j == 0)
            {
                QTableWidgetItem *item = new QTableWidgetItem(nameList[i]);
                item->setTextAlignment(Qt::AlignCenter);
                ui->tableWidget->setItem(i, j, item);
            }
            else if(j == 1)
            {
                QTableWidgetItem *item = new QTableWidgetItem(numberList[i]);
                item->setTextAlignment(Qt::AlignCenter);
                ui->tableWidget->setItem(i, j, item);
            }
            else
            {
                QTableWidgetItem *item = new QTableWidgetItem(QString::number(score[i]));
                item->setTextAlignment(Qt::AlignCenter);
                ui->tableWidget->setItem(i, j, item);
            }
        }
    }
}

测试效果如下:

2.5 Containers

  • Scroll Area(滚动区域):用于显示超出视图范围的内容,并提供滚动条进行查看。适用于需要显示大量内容的情况。

  • Tool Box(工具箱):类似于选项卡控件,可以显示多个页面,并通过选项卡切换显示不同内容。适用于显示多个相关页面的场景。

  • Tab Widget(选项卡控件):用于显示多个页面,每个页面对应一个选项卡,用户可以通过点击选项卡切换显示不同内容。常用于分组显示相关内容。

界面设计如下:

显示效果:

  • Stacked Widget(堆叠控件):用于在同一位置显示多个子控件,但只有一个子控件可见。通过切换当前显示的子控件来实现内容的切换。

使用Stacked Widget进行上述3个界面的切换,设计界面如下:

添加按键跳转的测试代码:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 设置默认
    ui->stackedWidget->setCurrentIndex(0);

    // 设置按键跳转
    connect(ui->btn_btn, &QPushButton::clicked, [=](){
        ui->stackedWidget->setCurrentIndex(1);
    });

    connect(ui->btn_net, &QPushButton::clicked, [=](){
        ui->stackedWidget->setCurrentIndex(2);
    });

    connect(ui->btn_grade, &QPushButton::clicked, [=](){
        ui->stackedWidget->setCurrentIndex(0);
    });
}

测试结果:

2.6 Input Widgets

Input Widgets控件用于接收用户输入数据的控件,常用控件如下:

使用代码添加多选框条目:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 设置下拉框内容
    ui->comboBox->addItem("小学");
    ui->comboBox->addItem("初中");
    ui->comboBox->addItem("高中");
    ui->comboBox->addItem("大学");
}

显示效果如下:

2.7 Label

Label控件(QLabel)用于显示文本或图像,并通常用于向用户提供信息或说明。Label控件是一种只读控件,用户不能直接在Label上进行编辑或交互操作。Label控件通常用于显示静态文本、图像、链接等内容。

Label控件的一些常见特性和用法包括:

  • 显示文本:Label可以显示文本内容,支持设置字体、颜色、对齐方式等属性。
  • 显示图像:Label可以显示图像,支持显示各种格式的图片文件。
  • 超链接:Label可以显示带有链接效果的文本,用户可以点击链接跳转到指定的网页或执行其他操作。
  • 自动换行:Label支持自动换行功能,当文本内容超出Label的显示范围时会自动换行显示。
  • 富文本:Label支持显示富文本内容,可以使用HTML标记语言来设置文本的样式和格式。

通过Label控件,开发者可以方便地向用户展示各种信息、说明、提示等内容,从而增强用户界面的友好性和交互性。

设置一个文本标签和一个显示图片的标签:

编写代码设置图片:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->label_img->setPixmap(QPixmap(":/file.jpg"));
    ui->label_img->resize(300,150);
}

显示效果:

3、总结

本文介绍了QT常用控件,并编写代码进行简单测试。

  • 30
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: QT悬浮球控件是一个常用的界面元素,可以用来增强用户界面的交互性和可视化效果。 悬浮球控件是一种浮动在界面上的圆形按钮,通常具有醒目的颜色和简单的图标。用户可以通过点击悬浮球来执行特定的操作,比如展开菜单、切换页面或者执行其他自定义的操作。 QT 360悬浮球控件具有以下特点: 1. 自定义样式:用户可以根据自己的需求来设置悬浮球的颜色、大小和图标等属性,以达到最佳的视觉效果。 2. 可拖拽:用户可以通过鼠标拖动悬浮球来改变其位置,从而实现界面布局的灵活调整。 3. 功能丰富:悬浮球可以绑定各种不同的功能,比如打开新窗口、显示通知、执行特定的操作等,以提供更好的用户体验。 4. 显示吸引力:由于其醒目的颜色和浮动效果,悬浮球通常能够吸引用户的注意力,提醒用户当前可以进行的操作。 5. 界面整洁:悬浮球可以减少界面上的冗余元素,使界面更加整洁和简洁。 总的来说,QT 360悬浮球控件是一个非常实用和方便的界面元素,可以增强用户界面的交互性和可视化效果,提供更好的用户体验。无论是用于桌面应用程序还是移动应用程序,悬浮球控件都能够起到很大的作用。 ### 回答2: Qt 360悬浮球控件是一种用于Qt开发的图形用户界面控件,可以自定义各种风格和功能的悬浮球,常用于提供快捷操作入口或菜单选项。 悬浮球控件可以在主界面或其他窗口上悬浮显示,通过悬浮球上的图标或按钮可以触发相应的动作或弹出特定的功能菜单。用户可以根据自己的需求,定义悬浮球的位置、大小、样式,以及悬浮球上的按钮数量和功能等。 除了常见的按钮功能外,悬浮球控件还可以添加拖拽、缩放、旋转等操作,使用户能够更加灵活地进行交互。悬浮球控件还支持设置悬浮球的透明度、边框样式、阴影效果等,以满足不同设计需求。 Qt 360悬浮球控件的具体实现需要使用Qt框架提供的QPainter、QMouseEvent等相关类进行开发。通过捕获鼠标事件,可以实现悬浮球的拖拽功能;通过绘制函数,可以绘制出符合要求的悬浮球外观。 总之,Qt 360悬浮球控件是一种功能强大的图形用户界面控件,可以提供方便快捷的交互方式。开发者可以根据自己的需求进行定制,以实现个性化的界面设计和交互效果。 ### 回答3: QT 360悬浮球控件是一款在QT开发环境下使用的可自定义的悬浮球控件。悬浮球控件是一个浮动在窗口上的小球形按钮,它可以用来进行快捷操作或者显示一些辅助信息。 QT 360悬浮球控件的特点有以下几点。首先,它可以通过简单的代码设置悬浮球的样式和行为,例如可以定义悬浮球的位置、尺寸、背景色、图标等。其次,悬浮球控件还支持鼠标事件,用户可以通过鼠标点击、拖拽、滚轮等方式与悬浮球进行交互,从而实现不同的功能。此外,悬浮球控件还可以响应键盘事件,用户可以通过键盘快捷键来控制悬浮球的行为。 悬浮球控件可以应用在很多场景中。例如,在一个窗口较大的应用程序中,如果用户需要频繁地进行某个操作,可以将这个操作设置在悬浮球上,这样用户就不需要频繁地切换窗口或者寻找按钮。另外,悬浮球控件还可以用来显示一些辅助信息,例如在悬浮球上显示当前系统的网络状态、电池电量等信息。 总之,QT 360悬浮球控件是一款方便实用的控件,在QT开发环境下可以灵活地进行设置和使用。无论是用来进行快捷操作还是显示辅助信息,它都能为用户提供便利。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值