
QT如何做出下面这样的一个GUI
1个回答
展开全部
1、直接用creator建个Qtgui应用的工程,里面就包含了ui文件 直接用就行了。 你要是已经有了ui文件, 在你想用的地方 , 打开ui的头文件,一般是 ui_XXXXXXXX.h 然后就可以定义它了
2、你可以把核心功能用C实现,在头文件fun.h中声明你的功能函数,具体功能在fun.c文件中实现,
gcc -c -o fun.o fun.c生成fun.o
在main.cpp文件中includefun.h,调用相应的函数.最后编译main.cpp链接fun.o即可:
g++ -o a.out main.o fun.o
也可以把核心功能搞成静态库或则动态库,
在编译main.cpp后链接静态库或则动态库,不过这个更复杂了
3、如果的计算功能是以一个文件写好了,A.cpp吧!在你的Qt工程中添加文件A.cpp,在用到此cpp中算法的任何.cpp文件中,用到那个函数就在文件的前面声明此函数,接下来就直接调用函数,链接的时候会自己链接到指定的函数的。(全局函数的方法)
4、你的界面肯定有界面类,在此类中添加成员函数,将你的算法当成成员函数封装进来,如果你算法复杂,此方法有点麻烦,不难。(成员函数的方法)
5、将你的这些算法函数全部导出为动态库,在用到算法的地方导入要用到的动态库就行了,此方法一劳永逸,而且显示你水平。(动态库方法)
如果还是不知道,你先百度一下C++动态库的创建与使用,这不是我在这里三言两语就能让你会的。
这是我用vc6.0做的demo,你再对照这看的理解与实践,希望你有所收获。
另外一种调用:
1)定义函数指针类型
2)加载动态库(使动态库程序运行)
HMODULE LoadLibrary(
LPCTSTR lpFileName
// 动态库的名称或全路径
);//返回动态库的实例句柄(HINSTANCE)。
如果dll文件与.exe文件在同一路径下,只需要写动态库名称,不在同一路径下,则需写带盘符的全路径
3)获取函数地址
FARPROC GetProcAddress(
HMODULE hModule,
// 动态库实例句柄
LPCSTR lpProcName
// 函数名称
);//执行成功,返回函数地址。
4)使用函数
5)卸载动态库
BOOL FreeLibrary(
HMODULE hLibModule
// 动态库实例句柄
);
例子:假设你想调int call1 ( int *response )
typedef int (*DLL_CALL)(int* );//这是将函数指针类型定义出来,在头文件中的类声明前加上
2.在你调用LoadLibrary后会返回一个句柄hDll,想调用函数的时候
DLL_CALL myCall1 = (DLL_CALL) GetProcAddress( hDll, "call1" );
myCall1(/*内面填写你要传的参数*/);
现在就将call1函数调用了。
3.FreeLibrary(hDll);
配合网上的详细讲解,一步步实践,这是很重要的一个知识点,我可能讲的不是那么好,毕竟我不专业。
哈哈,加油
2、你可以把核心功能用C实现,在头文件fun.h中声明你的功能函数,具体功能在fun.c文件中实现,
gcc -c -o fun.o fun.c生成fun.o
在main.cpp文件中includefun.h,调用相应的函数.最后编译main.cpp链接fun.o即可:
g++ -o a.out main.o fun.o
也可以把核心功能搞成静态库或则动态库,
在编译main.cpp后链接静态库或则动态库,不过这个更复杂了
3、如果的计算功能是以一个文件写好了,A.cpp吧!在你的Qt工程中添加文件A.cpp,在用到此cpp中算法的任何.cpp文件中,用到那个函数就在文件的前面声明此函数,接下来就直接调用函数,链接的时候会自己链接到指定的函数的。(全局函数的方法)
4、你的界面肯定有界面类,在此类中添加成员函数,将你的算法当成成员函数封装进来,如果你算法复杂,此方法有点麻烦,不难。(成员函数的方法)
5、将你的这些算法函数全部导出为动态库,在用到算法的地方导入要用到的动态库就行了,此方法一劳永逸,而且显示你水平。(动态库方法)
如果还是不知道,你先百度一下C++动态库的创建与使用,这不是我在这里三言两语就能让你会的。
这是我用vc6.0做的demo,你再对照这看的理解与实践,希望你有所收获。
另外一种调用:
1)定义函数指针类型
2)加载动态库(使动态库程序运行)
HMODULE LoadLibrary(
LPCTSTR lpFileName
// 动态库的名称或全路径
);//返回动态库的实例句柄(HINSTANCE)。
如果dll文件与.exe文件在同一路径下,只需要写动态库名称,不在同一路径下,则需写带盘符的全路径
3)获取函数地址
FARPROC GetProcAddress(
HMODULE hModule,
// 动态库实例句柄
LPCSTR lpProcName
// 函数名称
);//执行成功,返回函数地址。
4)使用函数
5)卸载动态库
BOOL FreeLibrary(
HMODULE hLibModule
// 动态库实例句柄
);
例子:假设你想调int call1 ( int *response )
typedef int (*DLL_CALL)(int* );//这是将函数指针类型定义出来,在头文件中的类声明前加上
2.在你调用LoadLibrary后会返回一个句柄hDll,想调用函数的时候
DLL_CALL myCall1 = (DLL_CALL) GetProcAddress( hDll, "call1" );
myCall1(/*内面填写你要传的参数*/);
现在就将call1函数调用了。
3.FreeLibrary(hDll);
配合网上的详细讲解,一步步实践,这是很重要的一个知识点,我可能讲的不是那么好,毕竟我不专业。
哈哈,加油

2025-02-18 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询