ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Clion makeList 新建一个简单的界面

2020-12-25 22:01:06  阅读:265  来源: 互联网

标签:界面 Chat QWidget ui chat Ui makeList include Clion


本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问

右键新建一个c++ class文件

这里我就取名为chat了

chat.cpp内容如下

//
// Created by 小游 on 2020/12/21 0021.
//

#include "chat.h"
// 这个ui_chat.h是.ui文件生成的,我们可以使用 UIC来自动生成
#include "ui_chat.h"

// chat的构造函数,这个:: 表示在外部定义函数
// 这个: 在构造函数中起到分割的作用,这个一般用于初始化类成员变量
// 这里我们其实就是在初始化QWidget 和Ui这两个对象
// 这个new Ui::Chat 传的是ui_chat.h 这里面的对象
Chat::Chat(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Chat)
{
    // 这个函数实现窗口的生成与各种属性的设置、信号与槽的关联
    ui->setupUi(this);
}

// 析构函数,当函数执行完毕后我们删除对象
Chat::~Chat()
{
    delete ui;
}

// 窗口点击事件
void Chat::on_pushButton_clicked()
{
    printf("you click the button");
}

chat.h文件内容如下

//
// Created by 小游 on 2020/12/21 0021.
//
#ifndef WIDGET_H
#define WIDGET_H

// 引入QWidget 这个是一个窗口的基类
#include <QWidget>

// 这是声明了一个名称为 Ui 的命名空间(namespace),
// 包含一个类 Chat。而是 ui_widget.h 文件里定义的类,用于描述界面组件的。
// 这个声明相当于一个外部类型声明(具体要看完 ui_widget.h 文件内的解释之后才能搞明白)。
namespace Ui {
    class Chat;
}

// 这里我们定义了一个Chat类,这里我们继承QWidget这个类
class Chat : public QWidget
{

    // 在 Widget 类中使用了宏 Q_OBJECT,这个就相当于 C语言中的 #define
    // 这是使用 Qt 的信号与槽(signal 和 slot)机制的类都必须加入的一个宏(信号与槽在后面详细介绍)
    Q_OBJECT

    // 在 public 部分定义了 Widget 类的构造函数和析构函数。
public:
    // explicit用于修饰构造函数(初始化的时候传入一个QWidget对象)
    explicit Chat(QWidget *parent = 0);
    // 析构函数 与构造函数相反,当程序结束的时候会自动执行来进行善后的工作
    ~Chat();

//    这里我们定义了一个slots 插槽,这个用于UI界面与程序进行交互
private slots:
    // 这个是按钮点击事件的一种写法,通常以 on_控件名字_clicked来表示,这里就是我们之前设置的一个按钮的点击事件
    void on_pushButton_clicked();

// 在 private 部分又定义了一个指针。
// 这个指针是用前面声明的 namespace Ui 里的 Widget 类定义的,
// 所以指针 ui 是指向可视化设计的界面,后面会看到要访问界面上的组件,都需要通过这个指针 ui。
private:
    Ui::Chat *ui;
};

#endif //WIDGET_H

chat.ui内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Chat</class>
 <widget class="QWidget" name="Chat">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <widget class="QPushButton" name="pushButton">
   <property name="geometry">
    <rect>
     <x>100</x>
     <y>180</y>
     <width>151</width>
     <height>71</height>
    </rect>
   </property>
   <property name="text">
    <string>哈哈哈测试一下</string>
   </property>
   <property name="autoDefault">
    <bool>false</bool>
   </property>
  </widget>
  <widget class="QLabel" name="label">
   <property name="geometry">
    <rect>
     <x>130</x>
     <y>90</y>
     <width>91</width>
     <height>61</height>
    </rect>
   </property>
   <property name="text">
    <string>标签</string>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

最后就是我们的主函数了,我们主函数的定义如下:

#include <QApplication>
#include <QFormLayout>
#include <QSlider>
#include <QSpinBox>

#include "chat.h"

int main(int argc, char *argv[])
{

    // 初始化一个QT application对象
    QApplication a(argc, argv);
    // 初始化一个窗口
    Chat w;
    // 显示我们的窗口
    w.show();
    // 这里就是执行程序
    return a.exec();
}

这样我们点击运行,这个程序就可以成功跑起来了:

这里顺便说一下这两个工具的使用QT开发就是一个编写界面的工具,用于可视化界面开发

而UIC就是用于生成.h文件的,因为我们函数本质上还是需要用到ui_xxx.h文件

标签:界面,Chat,QWidget,ui,chat,Ui,makeList,include,Clion
来源: https://blog.csdn.net/xiaoyou625/article/details/111710790

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有