精华内容
下载资源
问答
  • 2021-02-14 12:00:32

    想利用C或C++做界面设计,怎么做?

    方法步骤如下:

    1、首先打开计算机在,在计算机内打开打开QtCreator,新建一个qt工程。

    2、工程建立完毕,bai代码编辑界面出现,先不管代码。双击左侧的dialog.ui,将会打开图形界面编辑器界面。

    3、可以看到左侧有很多控件,中间就是程序运行时显示的窗口,右侧是对象窗口和属性窗口。其实,图形界面编辑器有一个独立的软件,叫做qt designer,是专门用来编辑图形资源的。实际上,编辑完成的图形界面是一个纯文本的xml文件,其实还有很多类似的图形界面编辑器。Qt集成开发环境会将我们编辑的图形界面xml文件转换成可编译的c++代码。

    相关文章;http://www.xdy666.com/

    4、下面我们在中间的窗口中拖入一个按钮,一个文本框。左键按住Push Button和Line Edit不放,拖到界面上即可。

    5、要注意按钮和文本框的objectName,在编写代码时要用到。

    6、将窗口调整下,让窗口大小合适,按钮和文本框能够对齐,并且能够随窗口的变化而变化。

    7、先点击窗口空白的地方,再点击上方工具栏上的水平布局按钮。然后将窗口调整到合适大小,来看看效果。

    8、点击菜单栏的工具Form Editor预览,来看看实际运行时窗口的效果。这只是外观效果,下面我们来添加一点代码。

    9、在按钮上右键,点击转到槽。

    10、然后再双击clicked(),将转到代码编辑页面。

    11、在代码编辑页面添加如下代码:QMessageBox::information(this,“图形界面”,ui->lineEdit->text());注意在顶部添加#include 。

    12、最后点击运行按钮即可。
    参考文章:
    http://www.jieba8.com/

    更多相关内容
  • c++写出带交互界面的简单计算器

    千次阅读 多人点赞 2020-05-21 15:53:59
    利用devc++和QT写交互界面的计算器 一.先下载一个QT 下载地址 http://download.qt.io/archive/qt/ 我下载的是 5.12.8 版本的 第四个是windos的 第五个是mac的 第六个是linux的 按需下载就行了 这里有一篇下载安装...

    利用devc++和QT写交互界面的计算器

    一.先下载一个QT

    下载地址
    http://download.qt.io/archive/qt/
    我下载的是 5.12.8 版本的
    在这里插入图片描述
    第四个是windos的
    第五个是mac的
    第六个是linux的
    按需下载就行了

    这里有一篇下载安装教程可以看看
    https://blog.csdn.net/cfan927/article/details/98115783?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&depth_1-utm_source=distribute.pc_releva
    (转@Cfan927)
    比较详细

    二. 学习Qt

    b站有个教学视频,可以先看看,他讲的比较详细
    https://www.bilibili.com/video/BV1g4411H78N
    我个人感觉看到 P10 就行了,因为我知道看我这篇文章的多半都是合工大的孩子被数据结构作业逼疯才来的,先学这么多
    弄懂怎么实现按钮的操作,弄懂什么是信号,什么是槽就可以了

    三.实现计算器代码

    有两点可能要注意一下(没有这个大作业的可以不看后面这段)
    我们的大作业里面有&& || !三种逻辑运算符
    !问题不大
    主要是&&和||
    这个到时候在计算器输入的时候要输入两个&&
    但是我们只入栈一个& 这样方便后面运算
    那怎么实现呢?
    我们用a来代表你的输入的算式
    a[i]遍历这个式子,当 i 指向第一个&时,i++
    再入栈运算符,这样就只入栈了一个运算符

    || 和上面的处理方式一样
    但是要注意的时 | 的ascii码是 124 ,判断运算符和数字时要注意

    其次要注意&& || !之间的优先级,还有运算联系等

    else if(a[i]=='&')
    			{
    			    if(a[i+1]=='&')
    			    	i++;
    			}
    

    类似于上面这样的代码来让它判断

    下面放上源码

    #include<iostream>
    #include<string>
    #include<cmath>
    #include<stack>
    using namespace std;
    
    int symbol(char c)             //赋予优先级
    {
    	switch (c)
    	{
    	case '#': return 0;
    	case '+': return 2;
    	case '-': return 2;
    	case '*': return 3;
    	case '/': return 3;
    	case '(': return 6;
    	case ')': return 1;
    	case '&': return 4;
    	case '|': return 4;
    	case '!': return 5;
    	default: break;
    	}
    	return 0;
    }
    
    double jisuan( char c='#',double b=1,double a=1)
    {
    	switch (c)
    	{
    	case '+': return b + a;
    	case '-': return b - a;
    	case '*': return b * a;
    	case '/': return b / a;
    	case '&': if(a!=0&&b!=0)  return 1;
    	          else          return 0;
        case '|': if(a==0&&b==0) return 0;
                  else           return 1;
    	default: break;
    	}
    	return 0;
    }
    
    double js(double a)
    {
    	if(a==0)  return 1;
    	else      return 0;
    }
    
    int main()
    {
    	stack<double>s1;
    	stack<char>s2;
    	string a;
    	cout << "请输入" << endl;
    	cin >> a;
    	a = a + '#';
    	s2.push('#');
        for (int i = 0;i<a.size(); i++)
    	{
    		if (a[i] <= 47||a[i]==124)                  //用阿斯克码判断扫描到的是数字还是运算符
    		{
    			if (a[i] == '#'&&s2.top() == '#') break; //两个#碰到一起运算结束
    			if (s2.top() == '(')   //括号特殊讨论
    			{
    				if (a[i] == ')')
    				{
    					s2.pop();
    					continue;
    				}
    				s2.push(a[i]);
    				continue;
    			} 
    			else if(a[i]=='&')
    			{
    			    if(a[i+1]=='&')
    			    {
    			    	i++;
    				}
    			}
    			else if(a[i]=='|')
    			{
    				if(a[i+1]=='|')
    			    {
    			    	i++;
    				}
    			}
    			if (symbol(s2.top()) >= symbol(a[i])) //判断运算符优先级
    			{
    				if(s2.top()=='!')
    				{
    					double vel=js(s1.top());
    					s1.pop();
    					s2.pop();
    					s1.push(vel);
    					i--;
    				}
    				else 
    				{
    					char temp1 = s2.top();
    				    s2.pop();
    				    double temp2 = s1.top();
    				    s1.pop();
    				    double temp3 = s1.top();
    				    s1.pop();
    				    s1.push(jisuan(temp1, temp3, temp2));
    				    i--;//要把a[i]再走一遍 不然同级运算a[i]不能push 
    				    continue;
    				}
    			}
    			else
    			{
    				s2.push(a[i]);
    				continue;
    			}
    		}
            else                     //对数字的运算
    		{
    			double sum = static_cast<int>(a[i]) - 48;
    			for (; a[i + 1] > 47&& a[ i + 1 ] != 124 ; i++)     //实现多位数的运算
    				sum = sum * 10 + static_cast<int>(a[i + 1]) - 48;
    			if(static_cast<int>(a[i+1])==46)    //计算小数
    			{
    			    int j=1;
    			    i=i+2;
    				for(;a[i]>47&&a[ i ] != 124;i++)
    				{
    					sum=sum+pow(10,-j)*(static_cast<int>(a[i]) - 48);
    					j++;
    				}
    				i--;
    			} 
    			s1.push(sum);
    		}
    	}
    	double result = s1.top();
    	cout << "计算结果:" << endl;
    	cout << result ;
    }
    
    

    四.实现QT代码

    1. 创立一个widge类型的项目
    在这里插入图片描述
    注意这里把那个Generate form 勾选上,方便后面设计界面

    在这里插入图片描述
    创建好以后就是这样 注意左上角那个板块 要有这几个文件夹

    如果没有那就把QT关了 然后点开刚刚创立的路径的文件夹 把那个文件打开
    再打开QT
    出现如下页面
    点击右下方的按钮就好了
    如果这还没好,那就说明可能你的QT没有下载完整 有的插件没下
    重新下吧

    在这里插入图片描述

    2.开始写代码

    2.1 首先我们要想一个问题 如何把计算器按钮上面输入的式子和自己的计算器源码连接起来

    我们可以创立一个 QString 类型的字符串 s (QT的头文件一般都是QString,QStack什么的)
    每输入一个字符,就把他加入到 s 中
    这样最后再把 s 传入你的源码中,进行后面的计算
    那他的结果我们也可以用一个QString 类型来记录,我们记为 res
    我们再来想一个问题
    那个教学视频中也说到过
    QT中 widget是一个类,他有头文件,我们想要 s 再每一次按下按钮后都记录
    所以我们就可以把 s 定为这个类的私有 ,res 也一样

    在widget.h文件中就有这样一段代码

    private:
        Ui::Widget *ui;
    
        QString s;
        QString res;
    

    在widget.cpp文件中的构造函数对它们初始化

    Widget::Widget(QWidget *parent)
        : QWidget(parent)
        , ui(new Ui::Widget)
    {
        ui->setupUi(this);
        s="";            //初始化
        res="";          //初始化
        setWindowTitle("肝到昏天黑地的计算器");    //这是个改变界面名称的函数
    }
    

    2.2 我们现在可以来编辑界面了

    点开在这里插入图片描述这个文件
    我们就进入了设计界面
    在这里插入图片描述
    这是我已经设计好的 注意背景图 (我是男生,这不是我的自拍)
    背景图有个链接 讲的也很清楚 https://blog.csdn.net/nb_zsy/article/details/104136793
    上面两个白框框 我选择的是 TextEdit,在左边的工具栏能找到
    按钮选择的是PUsh button
    鼠标选中以后 拖过来就好了
    (b站视频按钮是自己输入坐标的,这里的ui直接是自己选位置,方便了很多,这就是在创立新项目时让你们勾选那个Generate form 的原因)

    2.3 开始实现按钮

    鼠标放到你的按钮上 点击右键
    有个 转到槽 的选项
    之后选择clicked 这就是点击的信号
    点一下之后就跳到了代码页面
    之后就在这个函数里面实现你的按钮就可以了

    这里我们举一个例子

    void Widget::on_pushButton_clicked()
    {
         s+="1";
         ui->textEdit->setText(s);
    }
    

    s前面解释过了
    ui就是你这个设计页面,textedit就是第一个白框框,setText(s)就是在这个白框框里面输入s
    在这里插入图片描述
    那么这个连起来的意思就是
    在你的设计页面中的 textEdi t这个对象中输入 s
    具体怎么看对象名,在设计页面,点击你的按钮或者文本框,右上角有显示他的对象名

    再说三个特殊的
    ①后退键 :

    void Widget::on_pushButton_20_clicked()
    {
        s=s.left(s.length()-1);
        ui->textEdit->setText(s);
    }
    

    ②清除键 :

    void Widget::on_pushButton_19_clicked()
    {
        s="";
        res="";
        ui->textEdit->setText(s);
        ui->textEdit_2->setText(res);
    }
    

    res是在第二个文本框中的字符串

    ③ 等号键 :
    下面 “= ”的按钮是个特例
    我们有两种想法
    第一就是直接把你的计算器源码整个放在这个槽函数里面
    也可以在外面单独写一个函数,最后return一个值,把这个值传入 = 的槽函数

    但是值得注意的有两点
    第一
    如果你的计算器源码其中一个栈是char类型的,而你的s又是string类型,这样是过不了QT的编译器的
    因此要把string转成char型

    char *a=s.toLocal8Bit().data();
    

    第二
    最后传到设计界面的文本框中的数据应该是Qstring类型
    如果你最后的计算结果是 int 或者 double 类型的
    要把它转成Qstring的

        double num = s1.top();
        res = QString::number(num);
        ui->textEdit_2->setText(res);
    

    num是我的最后计算结果
    textEdit_2是我的第二个文本框的对象名

    到现在我们的计算器基本上就完成了
    还有两点也要注意一下
    第一就是我们在写槽函数的时候 输入文本框的字符一定时英文键盘下的字符,不然程序不会进行的
    第二就是QT有的错误不会报错,只会警告,尽量把所有的警告也改了,有的警告不影响结果,有的警告会让最后的程序异常关闭,虽然能编译通过
    上面两条都是我血的教训,好几个小时看不出到底是那错了,程序一直异常关闭

    我能说的也就这么多了,如果还有什么问题可以发在下面
    ****有一种营销号的感觉 ****

    我的这个计算器的文件在这里
    https://gitee.com/jinhesuannaijiaofu/jisuanqi
    进去下载那个计算器的文件就好了
    下载完成以后用QT打开就OK了
    要是看主要部分的代码的话,点开untit 文件里面的widget.cpp文件就行
    不用下载就能看

    如果能点个赞就更好了!!!

    展开全文
  • #define _CRT_SECURE_NO_WARNINGS_ #include<graphics.h> #include<stdio.h> #include<string.h> #include<mmsystem.h> #pragma comment(lib,"winmm.lib") struct button ...
    #define _CRT_SECURE_NO_WARNINGS_
    #include<graphics.h>
    #include<stdio.h>
    #include<string.h>
    #include<mmsystem.h>
    #pragma comment(lib,"winmm.lib")
    struct button
    {
    	int x;
    	int y;
    	int width;
    	int height;
    	COLORREF color;
    	char* ptext;
    };
    struct button* createButton(int x, int y, int width, int height, COLORREF color, const char* ptext)
    {
    	struct button* pB = (struct button*)malloc(sizeof(struct button));
    	pB->x = x;
    	pB->y = y;
    	pB->width = width;
    	pB->height = height;
    	pB->color = color;
    	pB->ptext = (char*)malloc(strlen(ptext) + 1);
    	strcpy(pB->ptext, ptext);
    	return pB;
    
    }
    //rectangle(intx,inty,intxx,intyy	)
    void drawButton(struct button* pB)
    {
    	setfillcolor(pB->color);
    	settextstyle(35, 0, "楷体");
    	setlinecolor(BLACK);	
    	settextcolor(BLACK);
    	setbkmode(TRANSPARENT);
    	fillrectangle(pB->x, pB->x, pB->x + pB->width, pB->y + pB->height);
    	outtextxy(pB->x + 20, pB->y + 50, pB->ptext);
    }
    int mouseInButton(struct button*pB,MOUSEMSG m)
    {
    	if (pB->x <= m.x && m.x <= pB->x + pB->width && pB->y <= m.y && m.y <= pB->height + pB->y)
    	{
    		pB->color = RED;
    		return 1;
    	}
    	pB->color = YELLOW;
    	return 0;
    }
    int clickButton(struct button * pB, MOUSEMSG m)
    {
    	if (mouseInButton(pB, m) && m.uMsg == WM_LBUTTONDOWN)
    	{
    		return 1;
    	}
    }
    int main()
    {
    	initgraph(800, 600);
    
    	IMAGE mm;
    	loadimage(&mm, "bg1.jpg", 800, 600);
    	
    	struct button* play = createButton(300, 150, 180, 50, YELLOW, "播放音乐");
    	struct button* pause = createButton(300, 200, 180, 50, YELLOW, "暂停音乐");
    
    	drawButton(play);
    	drawButton(pause);
    	
    	while (1) {
    		BeginBatchDraw();
    		putimage(0, 0, &mm);
    		drawButton(play);
    		drawButton(pause);
    		MOUSEMSG m = GetMouseMsg();
    		if (clickButton(play,m))
    		{
    			mciSendString("open pass.wav", 0, 0, 0);
    			mciSendString("play pass.wav", 0, 0, 0);
    		}
    
    		if (clickButton(pause, m))
    		{
    			mciSendString("pause passs.wav", 0, 0, 0);
    		}
    	
    		Sleep(50);
    		EndBatchDraw();
    	}
    
    	closegraph();
    	return 0;
    }
    

    在这里插入图片描述
    需要下载的头文件:EasyX_20210224.exe
    https://easyx.cn/download/EasyX_20210224.exe

    展开全文
  • 交互式命令行界面(Cisco风格)的仅跨平台标头的C ++ 14库 重要说明:重大的API更改cli 2.0版进行了重大更改,以添加更多功能。 要将您的应用程序迁移到新的cli版本,请参见此文件的“异步编程和调度程序”部分,...
  • C++ 一些界面的编写

    2013-03-04 09:39:04
    C++ 绚丽界面编写
  • 此程序为C++的程序,使用MFC做的界面,此程序实现了服务器与客户端的通信,使用socket通信。一个服务器端可以同时对应多个客户端,此程序代码注释清楚,十分适合应用与学习。服务器端和客户端之间可以发送指定的自己...
  • 图形界面学生管理系统(最新版所有功能均实现)c++ c++学生管理系统 图形界面学生管理系统(最新版所有功能均实现)c++ c++学生管理系统
  • 本工程VC2008 一个简单控件与网页交互的例子,js通过点击事件获取网页中的链接地址,js把链接地址作为参数调用控件,控件把结果返回。
  • C++使用OpenCV开发带界面程序总结

    千次阅读 2021-01-29 10:34:07
    OpencCV自身已经带了GUI界面,这个作处理结果检测是够用的,但是要产品化,界面就显得有点不专业(可能是自己研究不够),所以就得使用一些相关的C#、MFC、QT等来完成用户交互界面。现在就对做一个比较。 C# ​ C#调用...

    C++使用OpenCV开发带界面程序总结

    概述

    OpencCV自身已经带了GUI界面,这个作处理结果检测是够用的,但是要产品化,界面就显得有点不专业(可能是自己研究不够),所以就得使用一些相关的C#、MFC、QT等来完成用户交互界面。现在就对做一个比较。

    C#

    ​ C#调用OpenCV需要使用OpenCVSharp库,是此库相对简单,但是如果需要在OpenCV定义自己的算法,就无法满足。想使用OpenCV原始的方法可以满足要求。如果项目侧重的是OpenCV算法优化,这个就无法满足。就需要你是先自己的C++动态库,再在C#中调用(这个可以参考C#调用C++动态库)。

            private void OpenButton_Click(object sender, EventArgs e)
            {
                OpenFileDialog file = new OpenFileDialog();
                file.InitialDirectory = ".";
                file.Filter = "所有文件(*.*)|*.*";
                file.ShowDialog();
                if (file.FileName != string.Empty)
                {
                    try
                    {
                        pathname = file.FileName;   //获得文件的绝对路径
                        this.pictureBox1.Load(pathname);
    
                        //opencv加载图片
                        Mat src = new Mat(pathname, ImreadModes.Color);
                        Cv2.ImShow("C#测试OpenCV",src);
                        Cv2.WaitKey(0);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
    

    在这里插入图片描述

    具体实现可以参考链接(https://www.cnblogs.com/jsxyhelu/p/9669583.html)

    MFC

    ​ MFC本身是使用C++开发的,OpenCV也是,可以做到无缝调用。但是要将OpenCV保存图片结构(Mat)转换成MFC图片结构(IplImage)感觉有点麻烦(可能是自己对MFC使用不多).

    QT

    ​ QT本身也是使用C++开发的,可以直接调用OpenCV函数。自己感觉优点就是OpenCV转换成QT图片结构比较简单,一个函数就搞定,另外一个优点就是可以跨平台(如果没有跨平台要求,这个就不算优点,哈哈)。

    Mat image = imread(str);
    cvtColor(image, image, COLOR_BGR2RGB);
    cv::resize(image, image, Size(300, 200));
    QImage img = QImage((const unsigned char*)(image.data), image.cols, image.rows,                               QImage::Format_RGB888);
    

    在这里插入图片描述

    总结

    ​ 如果只是简单图片处理,直接使用C#(自己感觉目前做单机界面比较简单),如果项目侧重在OpenCV算法,建议使用MFC或者QT(那个熟悉就用那个),有跨平台要求建议使用QT。

    例子代码工程https://download.csdn.net/download/scy518/14952990

    参考链接

    https://blog.csdn.net/guanzhen3657/article/details/81812566

    https://www.cnblogs.com/jsxyhelu/p/9669583.html

    展开全文
  • c++数据传入qml, qml数据返回给c++,数据互传 ,两种方式
  • python+pyqt5手工编写一个含交互界面的简易词法分析器 @author:x1nge. 编译原理基础实验 基础 在之前的一篇博文中我记录了一个不含交互界面的简易词法分析器程序编写内容 点击此处查看 在本文我将用pyqt5写一个...
  • c++的聊天界面

    2014-05-27 14:54:35
    c++做的一个qq聊天 重庆理工大学 课程设计
  • QML与C++交互

    2020-12-22 17:10:41
    Qt Quick 是一种高级用户界面技术,使用它可轻松地创建供移动和嵌入式...  研究了几天QML,我想编程人员关心的还是QML怎样与C++ Application交互了。发现网上QT中文资料很少,唉,只能参照官网文档:  一、QML引
  • C# 与 C++ 交互

    2019-03-15 10:42:20
    1.可以在二者之间增加一个桥梁,使用C++/CLI(取代了托管C++) ,原生C++代码为主调程序,C++/CLI和C#/.NET 均为动态库*.dll。 2.原生C++可以使用函数LoadLibrary(dllFileName)加载dll,然后使用函数GetProcAddress...
  • Qt官方推荐使用QML构建界面,使用C++实现非界面的业务逻辑和复杂运算,大多数开发者也是基于这样的原则来混合使用QML和C++。因此QML与C++交互必然是我们需要掌握的技能。 此次Webinar将向大家介绍QML与C++交互...
  • QML与C++交互:登陆界面设计

    万次阅读 多人点赞 2014-05-14 10:12:02
    QML与C++交互:登陆界面设计 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:Qt5.2.1 说明: QML设计前台界面,C++后台负责逻辑 效果图: 源代码...
  • 这是人机交互学科的实验报告,我选择的课题是命令行菜单界面
  • C++之人机交互

    2021-09-07 22:39:07
    最近在跟着菜鸟教程及bilibili上搜的视频学习C++,也已经看了几天了。突然想到还是把自己的学习过程记录一下吧,这样印象会更深一些,也方便后续查询。 main.cpp #include <iostream> #include <string>...
  • 实现了6位和8位的电话号码频谱打印及电话号码的信息反馈
  • Qt Quick QML 与 C++ 交互系列之一

    万次阅读 2020-10-24 17:44:50
    QML 负责界面C++ 负责逻辑,这也是 Qt 官方推荐的开发方式。那么 QML 与 C++交互必然是每一个Qt开发老师需要掌握并且精通的。 接下来,我们会对QML 与 C++ 交互的几种方式进行详细讲解。我们通过创建项目,...
  • qml和C++可以相互调用,可以在qml代码中调用C++的类对象,也可以用C++类来获取qml的控件对象,下面分别介绍这两这种用法 qml调用C++ ​ Qt 提供了两种在 QML 环境中使用 C++对象的方式∶ ​ 方式1:在C+中实现一个类...
  • 使用 Dev-C++开发windows程序界面设计

    千次阅读 2021-07-29 12:10:57
    很多年前学过C++,但没有怎么使用过。最近有时间,准备重新学起来,以便可以编写自己喜欢的程序。 关于C++编译器,讨论文章已经很多。详细对比的文章也很多,我只是说说我一个初学者的感受。 就我自己而言,当初...
  • 它使用一些可视组件以及这些组件之间的交互来描述用户界面。本次测试的例子,是通过点击一个按钮,然后将c++中的数据改变到qml界面中,并且改变字体的颜色。 QML与c++的简单交互,文字说明: 首先在main文件里面...
  • 怎样用C/C++开发图形界面(GUI)程序——点名器示例 原文链接:https://mp.weixin.qq.com/s/O9PXaibAyd__ONBBASYI_Q 仍旧是Via What系列,昨天熬夜读了FLTK的文档,今天终于可以给大家介绍一下了。为什么首选这个...
  • C++&QT实现计算器图形界面交互

    千次阅读 2020-05-10 14:49:49
    (1)增加图形交互功能。 (2)增加3个逻辑运算符 &&、||、 !,并能处理逻辑运算符和算术运算符的混合运算。 (3)增加容错功能,能进行异常处理。 说明: (1)其中牵涉到数据结构相关的可复用代码,...
  • 主要实现了Socket服务端接收GUI界面中表单提交的数据,校验登录,实现页面跳转的简单例子
  • Qt QWebChannel web端js与C++交互

    千次阅读 2022-01-24 10:36:28
    Qt C++与 html直接进行交互。 介绍QWebChannel及两种通信方式:QWebEngine与Websocket
  • C++界面

    万次阅读 多人点赞 2019-08-03 11:23:23
     ...Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。     一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,904
精华内容 29,961
关键字:

c++交互界面

c++ 订阅